在程序中定义一个定长为100的字符串,一个长整型数据,一个IMAGE(Image为二进制数据,可为任何文件),利用Tstream及其子类怎么实现把它保存为一个文件??并且可以从储存的文件中把字符串,整型和Image都提取出来??希望大侠们能给出实现代码及注释,谢谢

解决方案 »

  1.   

    用TMemoryStream或者TFileStream都可以么?能不能给段代码,谢了
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        fsTemp:TFileStream;
        iTemp:integer;
    begin
        if not SaveDialog1.Execute then
            exit;
        fsTemp:=TFileStream.Create(OpenDialog1.FileName,fmOpenReadWrite);
    /////////打开要选择保存的目标文件 
        iTemp:=StrToInt(Edit1.Text);
    ////////Edit1的内容转换成integer
        fsTemp.WriteBuffer(iTemp,sizeof(integer));
    ////////向文件流fsTemp写整数iTemp。
        fsTemp.Position:=4;
    ////////定位文件流指针位置
        Image1.Picture.Bitmap.SaveToStream(fsTemp);
    ////////Image1的图象保存到流fsTemp中。
        fsTemp.Free;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
        fsTemp:TFileStream;
        iTemp:integer;
    begin
        if not OpenDialog1.Execute then
            exit;
        fsTemp:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
        fsTemp.ReadBuffer(iTemp,sizeof(integer));
    //////////读取文件流fsTemp的头部的一个整数到iTemp,读取后,指针位置为4
        Edit2.Text:=IntToStr(iTemp);
    /////////显示该整数
        Image2.Picture.Bitmap.LoadFromStream(fsTemp);
    ////////Image2载入文件流fsTemp,从当前的位置4开始载入
        fsTemp.Free;
    end;