Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Файл построчно [D5, WinXP]


Hunter2 ©   (2004-07-18 02:40:00) 

Нужно считать файл построчно в memo!

Делаю так:

procedure TfmExample.Button1Click(Sender: Tobject);
var
 F: TextFile;
 S: String;
begin
 AssignFile(F, 'example.txt');
 Reset(F);
 while not EOF(F) do
 begin
   Read(F,S);
   ServerStatus.Lines.Add(S);
 end;
 CloseFile(F);
end;

Но не фурычит, виснет!

И еще, нужно эту каждую строку считываемую из файла
разбить на части.
Вот так разбивать на части (Аналог функции Split() и Explode() PHP):

...

type

 ArrOfStr = array of string;
Var
 Uses: ArrOfStr;
...

function explode(sPart, sInput: string): ArrOfStr;
begin
 while Pos(sPart, sInput) <> 0 do  
 begin
   SetLength(Result, Length(Result) + 1);
   Result[Length(Result) - 1] := Copy(sInput, 0,Pos(sPart, sInput) - 1);
   Delete(sInput, 1,Pos(sPart, sInput));
 end;
 SetLength(Result, Length(Result) + 1);
 Result[Length(Result) - 1] := sInput;
end;

// вызываем
// StringName = 'Один:Два:Три:Четыри'

S:=explode (':', StringName);
Edit1.text:=S[1]); // Два


TUser   (2004-07-18 07:25:00) [1]

Ктоме того, LoadFromFile знааачительно быстрее. Если надо при загрузке строчки обрабатывать - грузани их в TStringList, измени и потом - Assign


Германн   (2004-07-18 02:57:00) [2]

Имхо, процедура Read - всегда считывала из файла указанную переменную, но не переходила автоматически на следующую строку.

А для считывания "строк" всегда была процедура ReadLn!


Наверх

Титульная страница Поиск, карта сайта Написать письмо