TFileStream.write(const buffer,count:int64)请问一下buffer是什么类型呢,我试过下面的代码,感觉有点莫名其妙:var i:integer
begin
  i:=$AABBCCDD;
  FileStream.write(i,4); //用Ultra Edit查看到文件里保存的是 DD CC BB AA ,为什么不是AA BB CC DD呢?
end;var str:String;
begin
  str:='0123456789';
  FileStream.write(str,length(str)); //同样用Ultra Edit查看文件,看到的是一串跟'0123456789'毫无关系的数据(或许是我太笨看不出有什么关系),怎么不是'0123456789'呢
end;var str:string; p: array [1..10] of Char; i:integer;
begin
  str:='0123456789';
  for i:=1 to 10 do
    p[i]:=str[i];
  FileStream.write(p,10); //查看文件看到里面保存的是'0123456789'
end;type ArrayChar = Array of Char;
var str:String; p:ArrayChar; 
begin
  str:='0123456789';
  p:=ArrayChar(str);
  FileStream.write(p,length(p)); //同样用Ultra Edit查看文件,查看到的数据跟第二个例子一模一样
end;

解决方案 »

  1.   

    用Pchar;
    p:pchar;
    str:='sldjsdkjf';
    p:=pointer(str);
    filestream.write(p^, length(str));
      

  2.   

    var i:integer
    begin
      i:=$AABBCCDD;
      FileStream.write(i,4); //用Ultra Edit查看到文件里保存的是 DD CC BB AA ,为什么不是AA BB CC DD呢?
    end;这很好理解,整型数在WINDOWS机里面是高位在前。=====================================================var str:String;
    begin
      str:='0123456789';
      FileStream.write(str,length(str)); //这是错误的写法!!!!!
    应该写成
      FileStream.write(pchar(str)^,length(str))
    end;