FileStream,Twriter将字符串变量(string)的内容写入一个文件,为何文件总是多两个字节,在最前面,如何正确无误将字符串变量(不是常量)的内容写入文件?请指教。

解决方案 »

  1.   

    多出的是不是0x0D0A?那么就是回车和换行符
      

  2.   

    var
      S: String;
      Strs: TStrings;
    begin
      S := 'ABCD';
      Strs := TStringList.Create;
      Strs.Add(S);
      Strs.SaveToFile('g:\aa.txt');
      FreeAndNil(Strs);
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  3.   

    我已发现,String长度<256时,多两个字节,第一为标志,第二为长度;>256时,多5个字节,第一仍为标志,第二至第五为长度;
    写入方法为:Writer.write(Pchar(string)^,Length(String))
      

  4.   

    同意楼上,且读取方法为:Reader.read(Pchar(string)^,Length(String))
    或Reader.read(Pointer(string)^,Length(String))