问题:要把一动态数组wsa 存入数据库一个Blob字段wsainfo(server image类型),然后能从这个字段wsainfo中读出到数组wsa,   要是用流,来操作,如何把动态数组写到流中?(由流入库就好写了)
   写入后又如何从流中写到另一个同样的数组中? 研究半天没搞明白
有什么好的方法,请给予帮助,谢谢!动态数组→写入→数据库 然后 数据库→读出→动态数组  有什么好的方法

解决方案 »

  1.   

    procedure TForm.Button4Click(Sender:TObject);
    var
    Buffer:Array[0..53] of char;
    begin
    if Assigned( BitmapMemroyStream) then
    try
    BitmapMemroyStream.Seek(0,soFromBeginning);
    BitmapMemoryStream.Read(Buffer,54);
    if Buffer[0]=’B’ and Buffer[1]=’M’ then file://改写内存内容
    begin
    BitmapMemoryStream.Seek(0,soFromBeginning);
    BitmapmemoryStream.Write(’ICE’,3); 
    Button3Click(Sender);//将改写的内容写入文件
    end;
    except
    ShowMessage(’error On Access memroyStream’);
    end;
    end;http://www.delphibbs.com/keylife/iblog_show.asp?xid=15726
      

  2.   

    还是有问题,如何把动态数组wsa 存入流,好象delphi没有这样的方法,
    而不象Bitmap有Bitmap.SaveToStream(MS);
      

  3.   

    用流的Write方法呀.
    var 
      CurrentFile :TFileStream;
      TempValue :String;
    begin
        urrentFile :=TFileStream.Create('c:\tmp.txt',fmCreate);
        TempValue:='OKOKOK';
        CurrentFile.Seek(0,soFromBeginning);
        CurrentFile.Write(TempValue[1],Length(TempValue));
    end;
      

  4.   

    //用流的Write方法呀.可是如何写【动态数组】,而且以后要从中再读到动态数组中?
      

  5.   

    Tstream(Tmemorystream,Tfilestream..都是这样)
    youary //你的数组
    youstm//你的流
    location//存入流的数组所在位置
    //first
    setlength(youary,100);//确定动态数组的长度
    stream.seek(location,0)//将流指针指向数组其实位置
    stream.write(youary,youary'size)//写入成功
    如果你不知道你的数组有多大,
    那你需要计算了,如果你的流只存取一个数组,那么youstream.size就是
    你数组的大小,setlength就ko.
    否则就需要在生成动态数组的时候监视他的大小,以便以后分配空间