我有个ini文件:小节名为:czjg0 ,关键字为czjg,如下:
[czjg0]
czjg=一、操作经过:   属麻下经皮右股动脉穿刺插管,以judkins法进行左右冠状动脉及左心室照影,多轴位成像,照影剂(优维显)总用量120ml,全过程顺利。[其他字节]
  
    现在我用去读ReadString('czjg0','czjg','');
结果读到“一、操作经过:”,其他得内容没有了,应该怎么才可以读所有得内容?谢谢

解决方案 »

  1.   

    据说有个ReadStream不知道是不.
      

  2.   

    关注,我也遇到此问题我就是在写入INI时,将他写成了一行
      

  3.   

    由于Ini当中数据是以行方式存储的,使用WriteBinaryStream将会转换成相应的十六进制存储进文件,从而读取时也可以使用ReadBinaryStream进行读取.
      

  4.   

    哦,那么请问string 又如何转为tstream  型?及反过来?谢谢
      

  5.   

    procedure StringToStream(const Source :String;Stream:TStream);
    var
       tls:TStringList;
    begin
       tls:=TStringList.Create;
       try
          tls.Text:=Source;
          tls.SaveToStream(Stream);
       finally
          tls.Free;
       end;
    end;
    //--------------------
    Function StreamToString(Stream:TStream):String;
    var
       tls:TStringList;
    begin
       Result:='';
       tls:=TStringList.Create;
       try
          tls.LoadFromStream(Stream);
          Result:=tls.Text;
       finally
          tls.Free;
       end;
    end;
      

  6.   

    非常感谢 unsigned,的详细解答我用以下方法:结果出错了,不知道是否这样用:麻烦帮我查查,谢谢!
    var
     str:string; 
     fStream:TStream ; Str:='属麻下经皮右股动脉穿刺插管,以judkins法进行左右冠状动脉及左心室照影,多轴位成像,照影剂(优维显)总用量120ml,全过程顺利。';
     StringToStream(Str,fStream);
     devini.WriteBinaryStream('czjg0','czjg',fStream); 结果在函数StringToStream的语句 tls.SaveToStream(Stream);中出错了,为什么?
      

  7.   

    Stream对像需要创建实例
    var
     str:string; 
     fStream:TMemoryStream ;//注意TStream对象不能用来实际应用. fStream:=TMemoryStream.Create; //这里创建对象.
     Str:='属麻下经皮右股动脉穿刺插管,以judkins法进行左右冠状动脉及左心室照影,多轴位成像,照影剂(优维显)总用量120ml,全过程顺利。';
     StringToStream(Str,fStream);
     devini.WriteBinaryStream('czjg0','czjg',fStream);   fStream.Free;//用完记得释放对象(内存)
      

  8.   

    非常感谢 unsigned,您真是好人呀,现在得问题是,程序没有错了,但是在ini文件中,字节czjg为空,什么也没有写进去,我去读什么也没有:      fStream:=TMemoryStream.Create; //这里创建对象.
          devini.ReadBinaryStream('czjg0','czjg',fStream);      str:=StreamToString(fStream);
          fStream.Free;//用完记得释放对象(内存)     结果str:=空的,什么也没有,还有什么问题吗?文件是ini格式
      

  9.   

    fStream:=TMemoryStream.Create; //这里创建对象.
          devini.ReadBinaryStream('czjg0','czjg',fStream);
    fStream.Position:=0;//添加一条看看.
          str:=StreamToString(fStream);
          fStream.Free;//用完记得释放对象(内存)
      

  10.   

    楼主应该使用WriteBinaryStream写进去,而不是象你问题当中写的那样,直接用文本编辑进去.
      

  11.   

    我是说我是用StringToStream(Str,fStream);
     devini.WriteBinaryStream('czjg0','czjg',fStream);   fStream.Free;//用完记得释放对象(内存)
    写进去的,不知道哪里出问题了?
      

  12.   

    找到问题了,应该在devini.WriteBinaryStream('czjg0','czjg',fStream); 
    之前加fStream.Position:=0;非常感谢 unsigned 的耐心的大力的帮助,给你加50分
      

  13.   

    StringToStream(Str,fStream);
    fStream.Position:=0;//也需要添加这一句
     devini.WriteBinaryStream('czjg0','czjg',fStream);