我想把字符串写入文件,但是中间我想加入十六进制00,就是用winhex查看的时候显示是00,但是我在字符串未尾加入#0,显示的时候是却不全是00    s := '字符串转换测试sadf84测试' + #0#0#0#0#0#0#0#0#0#0;
    strFilename:= 'c:\a.dat';
    filehandle:= Filecreate(strFilename, fmOpenWrite);
    StrPCopy(a, s);   //将字符串中的内容写入数组
    FileWrite(filehandle,a, length(s));
    FileClose(filehandle);用winhex查看的时候显示的却不是10个00,而是隔三个00就会出现一个非00。请大家帮忙啊!

解决方案 »

  1.   

    s : string;
      a : array of char;
      p : PChar;
      f : Integer;
    begin
      s :='测试输入的东西';
      SetLength(a,Length(s)+10);  p := @a[0];
      FillChar(p^,Length(a),0);
      strpcopy(P,s);
      f := FileOpen('E:\aaa.dat',fmOpenWrite);
      fileseek(f,0,2);
      filewrite(f,p^,Length(a));
      fileclose(f);
    end;
      

  2.   

    s := '字符串转换测试sadf84测试' + #0#0#0#0#0#0#0#0#0#0;
    strFilename:= 'g:\a.dat';
    filehandle:= Filecreate(strFilename, fmOpenWrite);
    FileWrite(filehandle,s[1], length(s));
    FileClose(filehandle);