以降とファイル処理LoadFromFile/SaveToFileTStringListクラスでLoadFromFile/SaveToFileするのが最も簡単にファイル入出力をする方法です。end;end;このようなコードでUnicode(UTF-16)のファイルが簡単に...吐けません。このコードで吐かれるのは日本語環境ならデフォルトコードページのCP932(Shift-JIS)になります。Unicode(UTF-16)でファイルを吐きたいのなら、以下のようにTEncodingクラスを指定する必要があります。end;end;面倒...たしかにそうですね。以下のような事もできます。end;end;GetEncodingを使えば、"任意のANSIコードページ"でファイルの入出力が可能となります。使ってインスタンスを破棄する必要があります。TEncodingにUTF-32LE/BEが用意されていないのが少々残念です。利用する事が可能となります。以降ではエンコーディング名を文字列で指定可能になりました。確認する事ができます。IniFileIniFileも、Unicode(UTF-16)に対応しています。end;end;ですが、Iniファイルが存在しない場合に上記のコードで吐かれるのは日本語環境ならデフォルトコードページのCP932(Shift-JIS)となります。end;end;このようにファイルチェックを行い、ファイルが存在しなければ事前に空のUnicode(UTF-16)ファイルを生成してやる必要があります。end;end;TMemIniFileでTEncodingを使うかです。(2)TStringBuilderクラス従来の手続き型文字列処理に慣れ親しんだヒトには好き嫌いが分かれると思いますが、Delphi2009にはもう一つの文字列処理系があります。それはTStringBuilderクラスを用いた文字列処理です。"ではなく、従来よりDelphiのFormat()で使われていた書式文字列になります。Appendメソッドが数多くオーバーロードされているので、いちいち型変換関数を噛ます必要がないのは利点ですが、Insertメソッドがワードインデックス(サロゲートペアは2ワード扱い)での処理だったりと、本格的に文字列処理を行いたいのであればどうしても他のRTL関数を利用する必要があり、.NETの開発者がDelphi2009で開発を行う際の支援、或いはWin32と.NETで限りなく等価なコードを記述する場合以外には使いどころが難しいクラスだと思います。どちらかと言えばC++Builder2009での方が利用価値は高いのではないかと思われます。(1)"で述べた通り、AnsiStringでの文字列操作及び、AnsiStrings名前空間を扱う場合には細心の注意が必要となります。AnsiString<->UnicodeStringへの代入は言うまでもない事ですが、誤ってAnsiStringでUnicode版関数を使ったり、またはその逆を行うと予想しない結果になる事があります。"AnsiStringでUnicode版関数を使った時の警告"と、"UnicodeでAnsiString版関数を使った時"の警告が非常に似ているので、慣れてくると「ああ、またか。これはOKだよ」と警告を見過ごしてしまいがちになります(経験談)。繰り返しますが代入互換性の問題はトラブルの元なので、もういっその事、警告からエラーに昇格させてしまいましょう。ExcludeTrailingPathDelimiter(aPath);end;上記コードはAnsiStringsをuses句に追加しないとエラーで止まるようになります。下記コードはCharInSet()を利用しないとエラーで止まるようになります。書式は以下のようになっています。DEFAULT}ON/OFFでワーニング有効/無効になり、ERRORを指定すると警告からエラーへ昇格します。DEFAULTを指定すると既定の動作に戻ります。"identifer"に指定できる識別子の一覧を以下に掲示しておきます。文字からロケール文字セットへの変換エラー。文字列は切り詰められます。文字列は切り詰められます。名前空間でシンボル名が重複しています。