「半角カナだけを全角カナに変換する」
半角カナだけを全角カナに変換するには
回答
半角を全角に変換するにはLCMapStringというAPI関数を呼び出せばよい。
よって、半角カナのみをLCMapString関数で変換すればよい。
ソース
function HanToZen(str:String):String;
var buf:array [0..1024] of Char;
begin
LCMapString(GetUserDefaultLCID,LCMAP_FULLWIDTH,PChar(str),Length(Str)+1,Buf,1024);
Result:=String(Buf);
end;
function KanaHanToZen(st:wideString):string;
var i:integer;
stTmp :wideString;
stKana:wideString;
chKana:wideString;
begin
stKana:='';
stTmp:='';
for i:=1 to Length(st) do
begin
chKana:=Midstr(st,i,1);
if((ord(chKana[1]))>=65377) and ((ord(chKana[1]))<=65439) then
stKana:=stKana+chKana;
end
else
begin
if(Length(stKana)>0 then
begin
stTmp:=stTmp+HanToZen(stKana);
stKana:='';
end;
stTmp:=stTmp+chKana;
end;
if Length(stKana)>0 then
stTmp:=stTmp+HanToZen(stKana);
KanaHanToZen:=stTmp;
end;