Вниз
Скачать: CL | DM;

Как прочесть из файла только первую строку?   Найти похожие ветки 

 
Tvon ©   (2004-01-11 07:51) [0]

Как прочесть из файла первую строку если список фалов находится в FilesList: TStringList? И каким способом это можно сделать быстрее?


 
Zergling ©   (2004-01-11 08:11) [1]

Библии по программированию почитай.
Посмотри примеры поставляемые с дельфи.
Как прочесть первую строку?
Зависит от типа файла, он текстовый или тепизированный, а может быть и нетипизированный он?


 
Tvon ©   (2004-01-11 09:15) [2]

Файл текстовый.
Пока мне в голову приходит только такой вариант:
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
s: String;
begin
StrList.Clear;
for i:=0 to FilesList.Count-1 do begin
AssignFile(f,FilesList.Strings[i]);
Reset(f);
Readln(f,s);
StrList.Add(s);
CloseFile(f);
end;
end;

Но можно ли сделать выполнение этой процедуры быстрее используя не AssignFile и т.п., а другие процедуры? Т.к. файлов будет более 2000 необходима максимальная скорость.


 
Anatoly Podgoretsky ©   (2004-01-11 09:16) [3]

Readln 1 раз


 
Zergling ©   (2004-01-11 09:55) [4]

Tvon © (11.01.04 09:15) [2]

>> используя не AssignFile
Всеравно придется (или можешь эксплуатировать OpenFile)
>> необходима максимальная скорость.
Быстрее уже никак. Вариант - продумать упрошенную/или более удобную организацию данных в файлах или писать все это в базу данных (или же создать собственную БД)

Рекомендуется при работе с файлами использовать блок Try..

AssignFile(f,FilesList.Strings[i]);
Try
Reset(f);
Readln(f,s);
StrList.Add(s);
finally
CloseFile(f);
end;


 
KSergey ©   (2004-01-11 12:42) [5]

> [4] Zergling © (11.01.04 09:55)
> Рекомендуется при работе с файлами использовать блок Try..
>
> AssignFile(f,FilesList.Strings[i]);
> Try
> Reset(f);
> Readln(f,s);
> StrList.Add(s);
> finally
> CloseFile(f);
> end;

Только тогда уж

AssignFile(f,FilesList.Strings[i]);
Reset(f);
Try
Readln(f,s);
StrList.Add(s);
finally
CloseFile(f);
end;

т.к. открывается файл только в Reset, а если ошибка при открытии- то и закрывать нефига.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.015 c
14-63337
Passlight
2003-12-30 13:27
2004.01.20
Яндекс и гугль - не предлагать :-)


8-63255
GhostDog
2003-09-13 14:09
2004.01.20
Фильтры


1-63190
ИМХО
2004-01-06 18:27
2004.01.20
По поводу Application.ProcessMessages


1-63094
hfa
2004-01-08 14:43
2004.01.20
webICQ и ICQ for windows


1-63171
kdoe
2004-01-10 14:45
2004.01.20
Как добавить программу в автозагрузку виндоса ХР?




   Наверх