[C++Builder] AnsiStringでコードページを指定する
C++Builder 2009ではAnsiStringでコードページが指定できます。
typedef AnsiStringT<932> SJISString;
| 固定リンク
C++Builder 2009ではAnsiStringでコードページが指定できます。
typedef AnsiStringT<932> SJISString;
| 固定リンク
AnsiString __cdecl FormatEx(const char *format, ...)
{
va_list args;
va_start(args,format);
AnsiString Buf="";
Buf.vprintf(format,args);
va_end(args);
return Buf;
}
使い方は、
AnsiString Str=FormatEx("%sは%dです",buffer,i);
| 固定リンク
//ひらがなからカタカナ
function TForm1.HiraToKata(Str : String) : String;
var
Buf:array [0 .. 1023] of Char;
begin
LCMapString(GetUserDefaultLCID, LCMAP_KATAKANA, PChar(Str), Length(Str)+1, Buf, 1024);
Result:=String(Buf);
end;
//カタカナからひらがな
function TForm1.KataToHira(Str : String) : String;
var
Buf:array [0 .. 1023] of Char;
begin
LCMapString(GetUserDefaultLCID, LCMAP_HIRAGANA, PChar(Str), Length(Str)+1, Buf, 1024);
Result:=String(Buf);
end;
//半角から全角
function TForm1.HanToZen(Str : String) : String;
var
Buf:array [0 .. 1023] of Char;
begin
LCMapString(GetUserDefaultLCID, LCMAP_FULLWIDTH, PChar(Str), Length(Str)+1, Buf, 1024);
Result:=String(Buf);
end;
//全角から半角
function TForm1.ZenToHan(Str : String) : String;
var
Buf:array [0 .. 1023] of Char;
begin
LCMapString(GetUserDefaultLCID, LCMAP_HALFWIDTH, PChar(Str), Length(Str)+1, Buf, 1024);
Result:=String(Buf);
end;
//'ああああ'の3バイト目を調べる例
case ByteType('ああああ',3) of
mbSingleByte: Lable1.Caption:='半角です';
mbLeadByte: Lable1.Caption:='全角の1バイト目です';
mbTrailByte: Label1.Caption:='全角の2バイト目です';
end;
全角1バイト目の文字集合であるLeadBytesを利用する方法もあります。
Str:='aああ';CanvasのTextWidthメソッドを使うと、その文字列を表示するために必要な幅がわかります。同じようにCanvasのTextHeightメソッドで表示するのに必要な高さがわかります。
TextWidth:=Form1.Canvas.TextWidth('aaaああああ');
TextHeight:=Form1.Canvas.TextHeight('aaaああああ');
C++Builder | C++言語・Pascal言語 | Delphi | TActionList | TColor | TEdit | TeX | TForm | TIniFile | TLabel | TListBox | TListView | TMemo | TProgressBar | TSplitter | TStatusBar | TStringGrid | TTrackBar | TWebBrowser | Windows | その他 | アルゴリズム | システム関連 | ネットワーク関連 | ファイル、フォルダの処理 | フォント関連 | フォーム・ダイアログ関連 | フリーソフト | プログラミング全般 | マウス、キーボードの処理 | 文字列の処理 | 日付時刻の処理 | 画像関連 | 開発環境(IDE)関連