我的程序中使用到了内存流,我用SaveToStream的方法,把一个文件保存到pMem中,pMem是一个内存流,我想给这个文件执行加密操作,但是却无法读取这个文件的内容,那么如何进行加密操作,使用pMem.Size大小就是文件的大小,但是pMem.Position指向文件最后如果设置为0,则调试器会弹出来并且CPU指令器弹出来显示内存流指向对象都是????,怎么读取呢,我使用pMem.Read或者是ReadBuffer方法,全部是错误,只能读出一个什么ITEF?这样的东西出来

解决方案 »

  1.   

    var
      c: string;
      MyStream: TMemoryStream;
    begin
      Try
        MyStream := TMemoryStream.Create;
        MyStream.LoadfromFile('c:\test.txt');
        SetLength(c,MyStream.size);   //设置字符的大小
        MyStream.Read(C[1], MySteam.size);   //把文件读入
        showmessage(c); //这里就是你的文件内容
      finally
        MySteam.Free;
      end;
      

  2.   

    这年头,这问题都能遇到,倒霉到家(我用流从来没出现过),
    期待高手
    帮你up 
    Zzzzzz....
      

  3.   

    一楼大哥,我用的就是这样的方法,使用ShowMessage字符串为ITEF?,我加载的文件是使用SaveToStream的方法保存到流文件是FoxMail的帮助文件
      

  4.   

    添加流.Postion=0可以从Stream中读取文件内容;
    var
      c: string;
      Stream,
      MyStream: TMemoryStream;
    begin
      Try
        MyStream := TMemoryStream.Create;
        stream:=TMemoryStream.create;
        //读取text.txt保存到Stream流中
        MyStream.LoadfromFile('C:\test.txt');
        MyStream.SaveToStream(Stream);
        
        stream.Position:=0;
        SetLength(c,Stream.size+1);   //设置字符的大小
        Stream.Read(C[1], Stream.Size);   //把文件读入
        showmessage(c); //这里就是你的文件内容
      finally
        MyStream.Free;
        Stream.Free;
      end;
    end;