文字列をバイナリ ファイルに書き込んでいると推測するために、ReadStr と WriteStr を使用するコードがいくつかあります。
ドキュメントの WriteStr の説明では、生データを AnsiString の形でオブジェクトのストリームに書き込むと記載されていますが、これは理にかなっています。しかし、その後 ReadStr は、文字を読み取ると言います。では、それらは互いに反対ではありませんか?
私が持っているとしましょう、
pName: String[80];
私はそれに WriteStr を使用していますが、実際には何を書きますか? WriteStr は AnsiString を想定しているので、pName をそのようにキャストしますか? その場合、AnsiString ポインタが長さフィールドではなく最初の要素を指しているため、「長さ」フィールドをストリームに書き込みませんか? 私も探していましたが、最近は String == AnsiString のようですが、長さフィールドに関する私の質問はまだ同じです。
長さフィールドをファイルに書き込まないとしても、データの最後に NULL を書き込むのでしょうか? そのため、'\0' を検索して文字列の末尾を見つけることはできますか? ReadStr は NULL 文字まで読み取りますか?
よろしくお願いします:)