15番会議室「FAQ編纂委員会」に寄せられた「よくある質問の答え」
[Q]
DelphiのCopy関数などは文字列をバイト単位で切り出しますが、
これを1バイト・2バイトの区別無く、文字単位で取り扱いたい。
[A]
WideString型を使うと、簡単に行えます。
実はStringとWideStringは互換性があり、「例」にあるように
相互に代入出来ます。
WideStringは総ての文字を内部では2バイトとして扱うので、
半角・全角の区別無く"文字"単位で文字列を取り扱えます。
[例]
Formの上にEdit、Button、ListBoxを1つずつ置き、Buttonの
OnClickイベントに下記のコードを記述します。
var
WS : WideString;
i : Integer;
Begin
ListBox1.Items.Clear;
WS := Edit1.Text;
For i := 1 To Length(WS) Do
ListBox1.Items.Add(Copy(WS, i, 1));
End;
これで、Edit1に1バイトと2バイト文字を混在して入力し、
Buttonをクリックすると、1"文字"ずつListBoxに追加されます。
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum FDELPHIに寄せられる質問の中から、よくある質問への回答を FDELPHIのメンバーがまとめたものです。 したがって、これらの回答はボーランド株式会社がサポートする公式のものではなく、掲示されている内容についての問い合わせは受けられない場合があります。
Copyright 1996-1998 Delphi Users' ForumFAQ編纂委員会
|