掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
マルチバイト文字の混在した文字列から、固定のバイト数を切り出すには? (ID:10156)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
私もdelphiを始めたばかりです 参考になればいいですけど^^; procedure TForm1.Button1Click(Sender: TObject); var Str, Temp: String; i, j: Integer; Arr: array of String; begin Str := Edit1.Text; if Length(Edit1.Text) >= 10 then begin { 10バイト以上の文字列の処理。 } // 動的配列Arrの要素数。 SetLength(Arr, Length(Edit1.Text)); for i := 1 to Length(Str) do begin case ByteType(Str, i) of mbSingleByte: Arr[i-1] := '半角'; // 半角 mbLeadByte : Arr[i-1] := '全角1'; // 全角の1バイト目 mbTrailByte : Arr[i-1] := '全角2'; // 全角の2バイト目 end; end; if (Arr[9] = '半角') or (Arr[9] = '全角2') then begin // 10バイト目が半角または、全角2の処理。 for j := 1 to 10 do begin Temp := Temp + Edit1.Text[j]; end; end else begin // 10バイト目が全角1の処理。 for j := 1 to 9 do begin Temp := Temp + Edit1.Text[j]; end; end; Edit2.Text := Temp; end else begin { 10バイト未満の文字列の処理。 } Edit2.Text := Edit1.Text; end; end; ※2バイト文字までしか考えていません。 3バイト以上の文字を知らないので^^;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.