掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
カタカナ(全角)を数値化するには? (ID:5801)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Halbow です。 > もしも任意の数字にしたい場合は86個の配列を用意して > 文字を2バイトのデータとして扱い > コードから$8340を引いて対応値を取得するほうがよいと思います。 そうですね。この方が「連想配列」より高速だと思います。わたしも最初はこのように考えて、文字コード表を見てみたのですが、規則正しくアイウエオと並んでいないのですね。最初に代入するときが面倒なのが欠点だと言えるでしょう。 ちょっとア行についてやってみました。 public function KanaToInt(ZenKana:string):integer; end; var Form1: TForm1; implementation {$R *.DFM} var KanaArr:array[0..86] of integer; procedure TForm1.FormCreate(Sender: TObject); begin KanaArr[1] := 11; KanaArr[3] := 12; KanaArr[5] := 13; KanaArr[7] := 14; KanaArr[9] := 15; // とりあえずア行だけためす end; function TForm1.KanaToInt(ZenKana: string): integer; begin result := KanaArr[(Ord(ZenKana[1]) shl 8) + Ord(ZenKana[2]) - $8340]; end; procedure TForm1.Button1Click(Sender: TObject); var s,t:string; ws:WideString; i:integer; begin s := 'イエオアウ'; ws := s; t := ''; for i := 1 to Length(ws) do t := t + IntToStr(kanaToInt(ws[i]))+' '; Label1.Caption := t; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.