|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"全角数字を半角数字に変換"
◆説明◆
例えば、数値データが入力されることを前提としたコンポに、ユーザーが誤
って「123」などと全角数字で入力を行った場合、時として致命的なエラー
に結びつく場合があります。
このサンプルは、Edit1 に入力された「12345」・「12345」といっ
たデータを「12345」のように、全て半角数字に変換します。
◆注意◆
このサンプルは整数値のみにしか対応しておりません。
◆サンプルコード◆
// グローバル宣言
var
data: String;
Er: Boolean;
function IntZenToHan(data: String): String;
var
L, i: Integer;
St, Res: String;
begin
L := Length(data);
Res := '';
i := 1;
Er := False;
while i <= L do
begin
St := Copy(data, i, 1);
if (St = '1') or (St = '2') or (St = '3') or
(St = '4') or (St = '5') or (St = '6') or
(St = '7') or (St = '8') or (St = '9') or
(St = '0') then inc(i) else
begin
St := Copy(data, i, 2);
if St = '1' then St := '1' else
if St = '2' then St := '2' else
if St = '3' then St := '3' else
if St = '4' then St := '4' else
if St = '5' then St := '5' else
if St = '6' then St := '6' else
if St = '7' then St := '7' else
if St = '8' then St := '8' else
if St = '9' then St := '9' else
if St = '0' then St := '0' else Er := True;
i := i + 2;
end;
Res := Res + St;
end;
if Er = False then Result := Res else
begin
data := 'Error "' + data + '"';
Result := data;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
data := Edit1.Text;
// =============================
Edit1.Text := IntZenToHan(data); //
if Er = True then //
begin //
ShowMessage('数値以外のデータが入力されています'); //
Exit; //
end; //
// =============================
// 上記部分を1セットとして使用する方が良いと思います。
// ・・・変換がエラーでなかった場合の処理へと続く
// ・・・
end;
J-OH!(VEC05267)
Original document by J-OH! 氏 ID:(VEC05267)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|