TFileStream的使用问题,存储 数据结构(100)

  • 主题发起人 主题发起人 々^丫y
  • 开始时间 开始时间

々^丫y

Unregistered / Unconfirmed
GUEST, unregistred user!
例数据结构如下:TYa = Packed Record I1,I2:Integer;如何存入,又如何读取。我的写的是错误的。就不贴上来了
 
procedure TForm1.Button1Click(Sender: TObject); {写}var aa:tya; fs:tfilestream;begin aa.I1:=99; aa.I2:=65438; fs:=tfilestream.Create('d:/test.stm',fmCreate); fs.Write(aa,sizeof(tya)); fs.Free;end;procedure TForm1.Button2Click(Sender: TObject); {读}var aa:tya; fs:tfilestream;begin fs:=tfilestream.Create('d:/test.stm',fmOpenRead); fs.Position:=0; fs.Read(aa,sizeof(tya)); fs.Free; label1.Caption:=inttostr(aa.I1); label2.Caption:=inttostr(aa.I2);end;
 
楼上是正解。但我想的是,存储结构后,还需要存储2张图片
 
保存图片啊,稍微麻烦点,需要确定图片类型,用对应的类去读,(不要用TGraphic类去load,会因为不确定数据类型报错的)procedure TForm1.Button1Click(Sender: TObject);var aa:tya; fs:tfilestream; jpg:tjpegimage;begin aa.I1:=99; aa.I2:=65438; fs:=tfilestream.Create('d:/test.stm',fmCreate); fs.Write(aa,sizeof(tya)); jpg:=tjpegimage.Create; jpg.SaveToStream(fs); jpg.Free; fs.Free;end;procedure TForm1.Button2Click(Sender: TObject);var aa:tya; fs:tfilestream; jpg:tjpegimage;begin fs:=tfilestream.Create('d:/test.stm',fmOpenRead); fs.Position:=0; fs.Read(aa,sizeof(tya)); jpg:=tjpegimage.Create; jpg.LoadFromStream(fs); image1.Picture.Assign(jpg); jpg.Free; fs.Free; label1.Caption:=inttostr(aa.I1); label2.Caption:=inttostr(aa.I2);end;
 
数据流不会用,学习学习
 
要注意把position复位阿。
 
后退
顶部