Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.10;
Скачать: CL | DM;

Вниз

Динамические массивы   Найти похожие ветки 

 
Yank   (2002-09-26 21:03) [0]

Я хочу сохранить запись, внутри которой находится динамический массив в файл. При использовании старого метода (запись в типизированный файл) мне выдатся ошибка Type "<element>" needs finalization - not allowed in file type.
При использовании метода объекта TFileStream записывается не вся запись (все поля, кроме дин. массивов). КАК БЫТЬ?


 
Kotka ©   (2002-09-26 23:39) [1]

Мда! Ошибка Type "<element>" needs finalization - not allowed in file type значит, что в типизированные файлы нельзя записывать данные неизвестной длинны, например ansiString или дин. массивы. Возможно 1) отказаться от дин. массива 2) в тип записать фиксированный массив с максимально возможным кол-вом элементов


 
MBo ©   (2002-09-27 06:36) [2]

вполне подойдет TFileStream
перед началом массива записать его длину, потом данные вот так:
fs.Write(rec.DA[0],DALength*SizeOf(DAElement));


 
PaRL ©   (2002-09-28 17:08) [3]

Я писал их в TextFile, шифровал и всё.

if SD.Execute then
begin
AssignFile(F, SD.FileName);
Rewrite(F);
WriteLn(F, IntToStr(sch));
for j := 0 to Pos-1 do
begin
Writeln(F, Crypt(Struct[j].Ques)); //Ques
if Struct[j].TypeAnsw = true then //Type
Writeln(F, Crypt("True"))
else Writeln(F, Crypt("False"));

Writeln(F, Crypt(IntToStr(Struct[j].Count))); //Count

for k := 0 to Struct[j].Count-1 do //AnswersText
Writeln(F, Crypt(Struct[j].AnswersText[k]));

for k := 0 to Struct[j].Count-1 do //Answ
if Struct[j].Answ[k] = True then
Writeln(F, Crypt("True"))
else Writeln(F, Crypt("False"))

end;



Страницы: 1 вся ветка

Текущий архив: 2002.10.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
7-32034
ValeX
2002-08-01 15:27
2002.10.10
write/read COM port в Win2000 :(


7-32051
Akim2
2002-07-30 18:49
2002.10.10
Mouse вышла из зоны


1-31781
XED
2002-10-02 02:08
2002.10.10
Дерево каталогов!!!


3-31614
Ifrit
2002-09-19 10:45
2002.10.10
Всем добрый день! :) Народ, помогите пожалуйста: как сделать, так


7-32052
melifaro
2002-07-30 22:25
2002.10.10
Shell=Explorer