В Delphi 2.0 я пытаюсь прочесть текстовый файл и получаю
проблему. Текстовый файл, который я хочу прочесть, имеет записи фиксированной
длины, но в самих записях могут располагаться различные типы с различной длиной,
и оканчиваться в различных позициях, в зависимости от типа.
Файл выглядит примерно так:
TFH.......<First record type, первый тип
записи> TBH.......<Second record type, второй тип
записи> TAB........<Third record type, третий тип
записи> TAA........<Fourth record type, четвертый тип
записи>
Вы можете поймать больше одного зайца в случае объявления переменной записи,
но если сделаете это правильно.
|
|
Type
TDataTag = Array [1..3] of Char;
TDataTags = Array [0..NumOfTags-1] of
TDataTag;
TDataRec = packed Record
tagfield: TDataTag;
case integer of
0: ( поля для тэга TFH
);
1: ( поля для тэга TBH
);
2: ..
....
end;
TMultiRec = packed Record
Case Boolean of
false: (строка: Array [0..1024] of
Char);
{ должно установать строку максимально
возможной длины }
true : ( data: TDataRec );
End;
Const
DataTags: TDataTags = ( 'TFH', 'TBH', .... );
var
rec: TMultirec;
ReadLn( datafile, rec.line );
Case IndexFromDataTag( rec.data.tagfield ) Of
0: ...
1: ...
End; |
IndexFromDataTag должен искать передаваемый тэг поля в массиве DataTags.
Определите все поля в TDataRec как Array [1..someUpperBound] of Char.
- Peter Below |