人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

DELPHI 7 にて、全角ひらがなを半角カタカナに変換する方法をお教えください


●質問者: shochankun
●カテゴリ:コンピュータ
✍キーワード:Delphi ひらがな カタカナ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kujirahand
●27ポイント

http://nadesi.com で使っている方法ですが、

こんな感じでどうでしょう?

var

s: string;

begin

s := 'あいうえお';

s := convToKatakana(s); // カタカナに

s := convToHalf(s); // 半角に

ShowMessage(s); // 半角カタカナになった!

end;

// 以下ライブラリ

{半角に変換}

function convToHalf(const str: string): string;

begin

Result := LCMapStringEx( str, LCMAP_HALFWIDTH );

end;

function convToKatakana(const str: string): string;

begin

Result := LCMapStringEx( str, LCMAP_KATAKANA );

end;

function LCMapStringEx(const str: string; MapFlag: DWORD): string;

var

pDes: PChar;

len,len2: Integer;

begin

if str='' then begin Result := ''; Exit; end;

len := Length(str);

len2 := len*2+2;

GetMem(pDes, len2);//half -> full

try

FillChar( pDes^, len2, 0 );

LCMapString( LOCALE_SYSTEM_DEFAULT, MapFlag, PChar(str), len, pDes, len2-1);

Result := string( pDes );

finally

FreeMem(pDes);

end;

end;

◎質問者からの返答

回答ありがとうございます

早速、ためしてみます


2 ● kyosh
●27ポイント

全角ひらがなを全角カタカナに変換する

http://www.wwlnk.com/boheme/delphi/tips/tec1330.htm


全角を半角に変換する

http://www.wwlnk.com/boheme/delphi/tips/tec1320.htm


この2つを応用してみたはいかがでしょうか?

◎質問者からの返答

回答ありがとうございました


3 ● sunaoka
●26ポイント

LCMapString API を使う方法があります。

http://msdn.microsoft.com/library/ja/jpintl/html/_win32_lcmapstr...

フォームに Button1 と Memo1 と Memo2 を配置してください。

procedure TForm1.Button1Click(Sender: TObject);
var
 buffer: array[0..255] of char;
begin
 Windows.LCMapString(
 GetUserDefaultLCID(),
 LCMAP_HALFWIDTH or LCMAP_KATAKANA,
 PChar(Memo1.Text),
 Length(Memo1.Text) + 1,
 buffer,
 SizeOf(buffer)
 );
 Memo2.Text := buffer;
end;

Button1 をクリックすると、Memo1 に入力された「全角ひらがな」が「半角カタカナ」に変換されて、Memo2 に入ります。

Delphi 7 Pro で確認しました。

◎質問者からの返答

回答ありがとうございました

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ