掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
全角文字を変数から一文字ずつ抽出するには? (ID:35321)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
自前でやる場合の一つの案ということで。 文字列をWideStringで扱うとマルチバイトの1バイト目かどうかというような判断をする必要がなくて楽です。 procedure Form1.Button1Click(Sender: TObject); var i: Integer; ls_Src: WideString; begin ls_Src := WideString(Edit1.Text); for i := 1 to Length(ls_Src) do begin case (ls_Src[i]) of '0': ls_Src[i] := WideString('0')[1]; '1': ls_Src[i] := WideString('1')[1]; '2': ls_Src[i] := WideString('2')[1]; '3': ls_Src[i] := WideString('3')[1]; '4': ls_Src[i] := WideString('4')[1]; '5': ls_Src[i] := WideString('5')[1]; '6': ls_Src[i] := WideString('6')[1]; '7': ls_Src[i] := WideString('7')[1]; '8': ls_Src[i] := WideString('8')[1]; '9': ls_Src[i] := WideString('9')[1]; //...省略 end; end; Edit1.Text := ls_Src; end; この場合、いちいちWideStringでキャストして添え字をつけないといけないのがわずらわしですが。 あと、LCMapStringは'\'だけは全角に変換されないのでLCMapStringで変換後さらにStringReplaceなどを使って'\'を'¥'に変換しないとなりません。 https://www.petitmonte.com/bbs/answers?question_id=5611
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.