Консультация № 145400
29.09.2008, 11:57
0.00 руб.
0 1 1
Здравствуйте! Подскажите пожалуйста, как считывать данные из текстовго файла блоками (есть строка обозначающая начало и конец блока), причем блоков несколько.

Пример файла:

//******************
begin // начало первого блока
А
Б
В
Г
begin // начало вторго блока
...
и т.д.

Может нужно применить рекурсию?

Заранее благодарен.

Обсуждение

Неизвестный
29.09.2008, 15:29
общий
это ответ
Здравствуйте, Тимур!
Предлагаю Вам следующий вариант решения.
Данные из текстового файла разбрасываются в динамически создаваемые TMemo.
А дальше с ними уже можно делать все что хочешь.


Приложение:
var
f: TextFile;
str: string;
kol: integer;
search: boolean;
memo: array of TMemo;

begin
AssignFile(f, 'c:\1.txt'); {Ваш файл}
Reset(f); {Передвигаемся в начало для чтения}
kol:=0;
while not EOF(f) do
begin
Readln(f, str);
if str = 'begin' then {анализ начала блока}
begin
kol:= kol + 1; SetLength(memo, kol);
memo[kol-1]:= TMemo.Create(Self); {сщздали TMemo}
with memo[kol-1] do
begin
Visible:= True;
Enabled:= True;
Width:= 100;
Height:= 100;
Parent:= Form1;
Top:= 100;
Left:= 100 + kol*105;
Name:= 'memo' + IntToStr(kol);
Clear;
end;
end;
if kol > 0 then memo[kol-1].Lines.Add(str); {добавляем строки если есть TMemo}
end;
Closefile(f); {закрываем файл}

end;
Форма ответа