を書く:それは私はこのようになりますデルファイ2007コード持っているデルファイ2010年にTFileStreamに文字列
var
SourceBuffer : PChar;
MyFile: TFileStream;
....
SourceBuffer := StrAlloc(1024);
MyFile := TFileStream.Create('MyFile.txt',fmCreate);
WriteString(MyFile,SourceBuffer,'Some Text');
....
これは、Delphi 2007年に働いたが、私はこのようにそれを呼び出す
procedure WriteString(Stream: TFileStream; var SourceBuffer: PChar; s: string);
begin
StrPCopy(SourceBuffer,s);
Stream.Write(SourceBuffer[0], StrLen(SourceBuffer));
end;
をDelphi 2010で多くの迷惑メールが発生しています。これは、Unicodeのコンプライアンスの問題が原因であることがわかりましたが、この問題に対処する方法がわかりません。ここで
は、私がこれまで試したものです:変更 SourceBufferのデータ型は(ともWideStringに期待されるパラメータ )はPWideChar型する
私は間違っていますか?
"self.WriteBuffer(LENを、4);" - それは出力ファイルに不器用な文字を書いていました。 – JosephStyons
"ぎこちない文字"は文字列の長さです。したがって、読み込み関数は読み込み量を知っています。これをプレーンテキストにする必要がある場合は、readStringにどこで停止するかを指示する必要があります。 –
私はこのファイルを別のアプリケーションで読み込んで読み込んでいるので、読み込むことは重要ではありません。 – JosephStyons