Вот суть задачи:
есть txt файл разделенный на блоки
#Description Описание
............
#Name Название столбцов
.........
~Value Значения в числах.
В идеале я хочу сделать грамотный открыватор-редактор файла.
Но пока знаний не хватает я пытаюсь сделать по принципу лижбы работало....
В начале я хочу разобраться как находить номер строки блока ~Value и номер последней строки файла для загрузки в StringGrid. В процессе тренировок смотрю результат в Memo.
Что я понял на данный момент
Потренировавшись со StringList я понял , что если строк много(у меня около 10 000) то построчный поиск довольно долгое занятие.
Var
SL_Row1: TStringList;
i, n1: Integer;
Block_Num: string;
begin
SL_Row1 := TStringList.Create;
SL_Row1.LoadFromFile('1.TXT');
Block_Num := '~Value';
for i := 0 to SL_Row1.Count - 1 do
if pos(Block_Num, SL_Row1.Strings[i]) > 0 then
break;
begin
n1 := i+1;
for i:= n1 to SL_Row1.Count - 1 do
Memo1.lines.add(SL_Row1.Strings[i]); // тут смотрю быстрый результат
End;
SL_Row1.Free;
end;
А в этом мне убедиться помог вот этот код (тут количество строк определяется мгновенно)
var
F : TextFile;
S : String;
Cnt : Integer;
begin
AssignFile(f,'1.las');
Reset(F);
Cnt := 0;
while not Eof(F) do begin
Read(F, S);
if Eoln(F) then Inc(Cnt);
Readln(F);
end;
CloseFile(F);
//Ответ.
ShowMessage('Всего строк в файле: ' + IntToStr(Cnt));
end;
Вообщем я начал не с того.
В данный момент изучаю примеры по работе с TextFile;