![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с чтением из типизированного файла [D4, D5, Win95/98]
WLAD © (2002-08-08 03:21:00)Мастера подскажите! После записи в типизированный файл при последующем чтении из него из другой программой выдается сообщение об ошибке: "Access violation at address....".
При чтении из файла программой в которой он создавался происходит считывание пустых переменных. В чем проблема?
Wlad (2002-08-08 23:00:00) [1]Пошел смотреть.
Юрий Зотов (2002-08-08 22:55:00) [2]А правильно писать все в поток, а потом сохранять этот поток на диск. См. класс TStream, а также TStrings.SaveToStream и TPicture.Bitmap.SaveToStream.
Wlad (2002-08-08 22:47:00) [3]Спасибо!
А как правильно?
Jeer (2002-08-08 22:39:00) [4]Начнем с того, что вот это - ссылки.
v,o:TStrings;
r:TPicture;
Ну запишешь ты указатели на некоторую область памяти (где храняться собственно стринги и image) - ну и что дальше ?
Как при чтении (и кто) должен догадаться, что по этому адресу когда-то существовало ?
Anatoly Podgoretsky (2002-08-08 22:36:00) [5]И чего ты ожидал, у тебя же в записи указатели на объекты, вот их ты и пишешь
Wlad (2002-08-08 22:32:00) [6]Вот код
type tz=record
v,o:TStrings;
r:TPicture;
m:Boolean;
p:Integer;
end;
var
z:tz;
f:file of tz;
{процедура записи}
procedure SV;
begin
AssignFile(f,"~t.tmp");
Rewrite(f);
z.v:=Form2.Memo1.Lines;
z.o:=Form2.Memo2.Lines;
z.r:=Form2.Image1.Picture;
z.m:=Form2.CheckBox1.Checked;
z.p:=Form2.SpinEdit1.Value;
write(f,z);
end;
{чтение из файла}
procedure TForm1.BitBtn5Click(Sender: TObject);
begin
Form3.Show;
if Form1.OpenDialog1.Execute then
begin
AssignFile(f,Form1.OpenDialog1.FileName);
reset(f);
read(f,z);
Form3.Memo1.Lines:=z.v;
Form3.RadioGroup1.Items:=z.o;
Form3.Image1.Picture:=z.r;
end;
end;
Poirot (2002-08-08 03:47:00) [7]
> Код В Студию
Желательно весь... и это не шутка...
Код В Студию (2002-08-08 03:46:00) [8]...