我2007年德爾福代碼,看起來像這樣:寫入字符串到TFileStream的德爾福2010
procedure WriteString(Stream: TFileStream; var SourceBuffer: PChar; s: string);
begin
StrPCopy(SourceBuffer,s);
Stream.Write(SourceBuffer[0], StrLen(SourceBuffer));
end;
我這樣稱呼它:
var
SourceBuffer : PChar;
MyFile: TFileStream;
....
SourceBuffer := StrAlloc(1024);
MyFile := TFileStream.Create('MyFile.txt',fmCreate);
WriteString(MyFile,SourceBuffer,'Some Text');
....
這曾在德爾福2007年,但它在Delphi 2010中給了我很多垃圾人物。我知道這是由於unicode合規性問題,但我不知道如何解決這個問題。
這是我到目前爲止已經試過:
變化 SourceBuffer的數據類型(並且還通過WideString的預期參數 )到PWideChar
我在做什麼錯?
我刪除了後,這個工作對我來說 「self.WriteBuffer(LEN,4);」 - 這是寫一些亂碼字符到輸出文件。 – JosephStyons 2009-09-16 18:33:38
這些「亂碼字符」是字符串的長度,所以閱讀功能知道要讀回多少。如果你需要這是純文本,你需要一些其他方式告訴readString停止。 – 2009-09-16 18:44:19
我正在將此文件寫入另一個應用程序來讀取它,所以我不能重新讀取它。 – JosephStyons 2009-09-16 18:48:10