不好意斯, 我又来了!TFileStream文件读写问题(win2000)!(20分)

  • 主题发起人 主题发起人 fjhst
  • 开始时间 开始时间
F

fjhst

Unregistered / Unconfirmed
GUEST, unregistred user!
问题很简单:使用TFileStream进行文件读写, 我往“d:/SomeFile.txt”写入字符串
'test!', 完后我又UltraEdit打开, 乱码,其ascii码:D0 6F 44 00 00, 而不是:
74 65 73 74 21('test!'), 我用的是WINDOWS 2000

代码如下:

procedure TForm1.Button5Click(Sender: TObject);
var
F: TFileStream;
str: PChar;
begin
str := 'test!';
F := TFileStream.Create('d:/SomeFile.txt', fmCreate);
F.Seek(0, soFromBeginning); // Vital! Do not forget!
F.Write(str, 5);
F.Free;

str:= ''; // This is additional line

F := TFileStream.Create('d:/ss.dat', fmOpenRead);
F.Seek(0, soFromBeginning); // Vital! Do not forget!
F.Read(str, 5);
showmessage(str);
F.free;
end;

请指点迷津, 谢谢!
 
我身边没有delphi,感觉你的错误应该出在再次创建一个文件流上
 
但是
F.Read(str, 5);
showmessage(str);
又能正确处里(test!)
 
天都亮了!我得去睡觉了!
 
我要去看日出了!好多年没看到了!
 
是啊!看到日出, 感觉真好!童年的感觉。。。
 
F.Write(str^, 5);
F.Read(str^, 5);
 
远帆是对的。
 
WRite的用法错误,应该是:
Write( PChar( str )^, 5 );
 
后退
顶部