Может кто подскажет как сие сотворить

Matroskin
Дата: 18.10.2006 16:48:50
  TRec1 = record
    no1: integer;
    no2: integer;
  end;
  TRecordFile = record
    tag: byte;
    rec1: array of TRec1;
  end;

var
  WorkFile: file of TRecordFile;

т.е. что то типа заголовка и данных произвольной длинны, только в пределах одной записи...
Андрей Спильный
Дата: 18.10.2006 17:00:33
читать про TStream, TFiler
смотреть Source, особенно сериализацию TComponent
mv
Дата: 18.10.2006 17:03:02

Нельзя. Правила языка Дельфи потомучто.

Certain types are treated specially by the compiler on an internal basis in
that they must be correctly finalized to release any resources that they
might currently own. Because the compiler cannot determine what type is
actually stored in a record's variant section at runtime, it is not possible
to guarantee that these special data types are correctly finalized.

Используй хитрости: например, потоки вместо типизированных файлов. Каждый
логический блок должен начинаться с его размера. Прочитал размер - читай
остальные данные блока. Легко заворачивается в классы.


Posted via ActualForum NNTP Server 1.3

Гаджимурадов Рустам
Дата: 18.10.2006 17:12:42

Matroskin> Может кто подскажет как сие сотворить


Собственно, что не получается?

Posted via ActualForum NNTP Server 1.3

Matroskin
Дата: 18.10.2006 17:17:32
Спасибо, посмотрю в сторону потоков.

Собственно не получается сделать запись переменной длины по указанным чуть выше причинам. Фактически нужна подсказка, как обмануть.

Один вариант уже есть, еще бы парочку для альтернативы :)
Гаджимурадов Рустам
Дата: 18.10.2006 17:20:37

Matroskin> Собственно не получается сделать запись переменной длины

Нет такой возможности. Прочитай про сериализацию и либо "подгони" свою структуру - сделай ее гибче,
либо делай нормальный парсер по кускам (блокам).

Posted via ActualForum NNTP Server 1.3

Куликов Алексей
Дата: 18.10.2006 17:23:51
А если тебе попробовать "детский" вариант:

  PRec = ^TRec;
  TRec= record
    data: longint;
    next: PRec;
  end;

  TRecordFile = record
    tag: byte;
    data: PRec;
  end;


Сам таким иногда болуюсь...
Гаджимурадов Рустам
Дата: 18.10.2006 17:29:35

ЛОЛ. И что с этим дальше делать?

Posted via ActualForum NNTP Server 1.3

Matroskin
Дата: 18.10.2006 17:38:14
Пойду читать :)

Спасибо за подсказки !
mv
Дата: 18.10.2006 17:39:11

Matroskin

т.е. что то типа заголовка и данных произвольной длинны, только в пределах
одной записи...

Используйте СУБД + BLOB/Varchar. :)


Posted via ActualForum NNTP Server 1.3