В Delphi 2.0 я пытаюсь прочесть текстовый файл и получаю проблему. Текстовый файл, который я хочу прочесть, имеет записи фиксированной длины, но в самих записях могут располагаться различные типы с различной длиной, и оканчиваться в различных позициях, в зависимости от типа.

 Файл выглядит примерно так:

 TFH.......<First record type, первый тип записи>

TBH.......<Second record type, второй тип записи>

TAB........<Third record type, третий тип записи>

TAA........<Fourth record type, четвертый тип записи>

 Вы можете поймать больше одного зайца в случае объявления переменной записи, но если сделаете это правильно.

Code:

type

TDataTag = array[1..3] of Char;

TDataTags = array[0..NumOfTags - 1] of TDataTag;

TDataRec = packedrecord

   tagfield: TDataTag;

   case integer of

     0: (поля для тэга TFH);

     1: (поля для тэга TBH);

     2: ..

     ....

end;

TMultiRec = packedrecord

   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.

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить