掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
文字列が正規かの判定を教えて下さい。 (ID:43427)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi 6 という事で。 function IsValidCP932String(S: AnsiString; Index: Integer; Count: Integer): Boolean; begin result := False; // 開始位置/終了位置が不正なら無効 if (Index <= 0) or (Count <= 0) then Exit; // 開始位置のエレメントがマルチバイト文字の 2 バイト目なら無効 if ByteType(S, Index) = mbTrailByte then Exit; // 終了位置のエレメントがマルチバイト文字の 1 バイト目なら無効 if ByteType(S, Index+Count-1) = mbLeadByte then Exit; result := True; end; procedure TForm1.Button1Click(Sender: TObject); var S: String; i, l: Integer; begin S := '東京'; i := 1; // インデックス l := 1; // 長さ ShowMessage(Copy(S, i, l)); { // S に切り取った後の文字列を入れてはいけない // (判定に失敗するケースが存在する) S := '集計表'; S := Copy(S, 6, 1); ShowMessage(S); i := 1; // インデックス l := Length(S); // 長さ } // 有効/無効を判定する if IsValidCP932String(S, i, l) then ShowMessage('有効') else ShowMessage('無効'); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.