System.RawByteString
Delphi
type RawByteString = AnsiString;
C++
typedef AnsiStringT<65535> RawByteString;
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
type typedef |
public | System.pas System.hpp |
System | System |
説明
コード ページ変換を行うことなく、どんなコード ページの文字列データも渡すことができます。
RawByteString は、文字列データを読み込むプロシージャが、複数オーバーロードする必要性を減らすためにあります。 したがって、文字列のコード ページに関係なく文字列を処理するルーチンのパラメータは、通常、RawByteString 型にします。
RawByteString は、パラメータ型としてのみ、かつ、この方法を利用しなければ、さまざまなコード ページを持つ AnsiStrings に対して複数のオーバーロードが必要になるようなルーチンでのみ、使用します。 このようなルーチンは、実行時の文字列の実際のコード ページに注意して記述する必要があります。
一般に、文字列処理ルーチンでは、文字列型として単純に "string" を使用することが推奨されます。 RawByteString 型の変数やフィールドを宣言することは、あったとしてもまれでしょう。なぜなら、この手法は、未定義の動作やデータ紛失の可能性があるからです。
関連項目
- TBytes
- System.SetCodePage
- System.AnsiString
- System.Rtti.TRttiAnsiStringType.CodePage
- http://stackoverflow.com/questions/6061919/delphi-xe-rawbytestring-vs-ansistring
- 「Delphi Unicode ワールド パートI: Unicode とは? なぜ必要なのか? そして、Delphi でどのような作業を行うのか?」(英語)
- 「Delphi Unicode World パート II: RTL の新機能と Unicode をサポートするクラス」