Текущий архив: 2004.05.30;
Скачать: CL | DM;
ВнизЗапись и считывания масива из файла Найти похожие ветки
← →
Alek_1 (2004-05-18 19:15) [0]Есть вот такой масив:
TSchet_client = packed record
svob_all: Currency;
Svobdnaya: Currency;
Marja: Currency;
Tek_result: Currency;
Saldo: Currency;
end;
TUsers = packed record
user_id: word;
total_usd: TSchet_client;
end;
users: array of TUsers;
Я хочу сохранить его в файл а затем считать
Сохраняю так:
AssignFile(ToF, ExtractFilePath(Application.ExeName)+"users.dat");
Rewrite(ToF);
try
BlockWrite(ToF, Users, SizeOf(users));
finally
CloseFile(ToF);
end;
Затем считываю вот так:
AssignFile(ToF, ExtractFilePath(Application.ExeName)+"users.dat");
Reset(ToF);
try
if FileSize(ToF) > 0 then begin
SetLength(Users,kol_users); - в kol_users записана информация о том сколько памяти занимал масив при сохранении
BlockRead(ToF, Users, SizeOf(users));
end;
finally
CloseFile(ToF);
end;
и Вот при считывании в масив забивается какая-то ерунда. Совершенно не те параметры которые были при сохранении
Подскажите плизз где тут ошибка или как правильно сохранять и считывать масив из файла.
← →
Alek_1 (2004-05-18 21:28) [1]подскажите плиззз, кто что знает
← →
GuAV © (2004-05-18 22:01) [2]
procedure TForm1.Button2Click(Sender: TObject);
var A:array of Integer;
begin
SetLength(A,200);
ShowMessageFmt("%d %d",[Length(A)*SizeOf(A[0]),SizeOf(A)]);
ShowMessage(BoolToStr(@A=@A[0],True));
Finalize(A);
end;
← →
DHDD (2004-05-19 04:30) [3]Сохранять так:
Rewrite(ToF,1);
Затем считывать вот так:
Reset(ToF,1);
kol_users:=filesize(ToF) div sizeof(TUsers);
BlockRead(ToF, Users, filesize(ToF));
← →
Alek_1 (2004-05-19 13:28) [4]Всем спасибо!
> DHDD
не получилось у мен так как Вы предложили, он снова забивал масив какимито левыми значениями.
Я решил проблему с использованием типизарованых файлов.
ToF: file of TUsers;
И считываю масивчик попорядочку через Write and Read.
Хотя нужно будет разобраться и с BlockWrite and BlockRead
← →
MBo © (2004-05-19 13:39) [5]BlockWrite(ToF, Users[0], SizeOf(Tusers)*Length(Users));
Страницы: 1 вся ветка
Текущий архив: 2004.05.30;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.037 c