Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> что делает этот код? 
:(
    Опции темы
Kvazilol
Дата 14.12.2007, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 7.12.2006

Репутация: нет
Всего: нет



товарищи, нужен был алгоритм, нагуглил, а он не на том языке который я знаю...((( помогите пажалста, 
скажите хотябы что он делает (поточнее), порсто я не знаю этих функций, а узнавать  книжках долго а мне нужно быстро а то не успею

объхявления переменных  я понимаю, циклы тоже, условные переходы тоже (буду писать это на C#)
Код

var

F : file;

I : dword;

S : string;

N : array[1..5] of Char;

Buf : array[1..500] of Char;

R : TextFile;

begin

AssignFile(R,'Emails.txt');

ReWrite(R);

AssignFile(F,WABFile);

Reset(F,1);

if IOResult=0 then begin

repeat

BlockRead(F,N,2);

if N[1]+N[2]=#03#48 then begin

BlockRead(F,Buf,Ord(N[2])+30);

S:='';

for I:=1 to Ord(N[2])+30 do S:=S+Buf[I];

Delete(S,1,3);

I:=Pos(#00#00#00,S);

if I>0 then SetLength(S,I-1);

for I:=1 to Ord(N[2]) do if S[I]=#00 then Delete(S,I,1);

for I:=1 to Length(S) do

if S[I]0)and(Pos('.',S)>0) then

writeln(r,UpperCase(S));

end else Seek(F,FilePos(F)-1);

until FileSize(F)-FilePos(F)<6;

CloseFile(F);

end;

CloseFile(R);


ну.. сначала понятно а потом нет.. открываем файл.. читаем 2 байта? (или 2 буквы?)
Ord(N[2]) это что такое? ASCII код символа?
Delete(S,1,3);  вырезает из массивы элементы с 1 по 3й?
что делается при I:=Pos(#00#00#00,S);   и чтотакое вот эти штуки #00#00#00
что делает  SetLength(S,I-1)
что делает Seek(F,FilePos(F)-1);

спасибо ответившему!!! 


M
Alexeis
Модератор: Название темы должно отражать ее суть!

PM MAIL   Вверх
ivan219
  Дата 14.12.2007, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12



Цитата(Kvazilol @  14.12.2007,  20:42 Найти цитируемый пост)
Ord(N[2]) это что такое? ASCII код символа?

Да в десятичной системе.
Цитата(Kvazilol @  14.12.2007,  20:42 Найти цитируемый пост)
Delete(S,1,3);  вырезает из массивы элементы с 1 по 3й?

Удалить из строки S с 1 позиции 3 символа т.е. если в S будет строка '1234' на выходе будет '4'.
Цитата(Kvazilol @  14.12.2007,  20:42 Найти цитируемый пост)
что делается при I:=Pos(#00#00#00,S);   и чтотакое вот эти штуки #00#00#00

Позиция строки #00#00#00 в строке S т.е. если S := '1234'; I := Pos('3', S); I = 3
#00  ASCII код символа.
Цитата(Kvazilol @  14.12.2007,  20:42 Найти цитируемый пост)
что делает  SetLength(S,I-1)

S массив процедура выделяет под него память размером I-1 зачем в коде это нужно не понятно так как S имеет тип String  smile 
Цитата(Kvazilol @  14.12.2007,  20:42 Найти цитируемый пост)
что делает Seek(F,FilePos(F)-1);

Помойму это позиция в файле.


Это сообщение отредактировал(а) ivan219 - 14.12.2007, 21:41
PM MAIL ICQ   Вверх
lukas
Дата 14.12.2007, 22:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 771
Регистрация: 23.2.2007

Репутация: 3
Всего: 15



Код

S массив процедура выделяет под него память размером I-1 зачем в коде это нужно не понятно так как S имеет тип String  smile 


string - это массив символов... если допустим тебе нужно расширить строку до 250 символов... чтобы потом не мучаться и не проверять при таком обращении - S[I] (есть ли I - символ)... 


--------------------
http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi.
PM MAIL WWW   Вверх
ivan219
  Дата 14.12.2007, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 5
Всего: 12



Цитата(lukas @  14.12.2007,  22:43 Найти цитируемый пост)
string - это массив символов...

Я это знаю  smile 

Хотя новерное лучше заранее знать сколько в неё влезет чтоб лишний if неиспользовать так быстрее будет.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0665 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.