AnsiString用法(转)
//Ansistring 转 char void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "哈哈"; char *chr = Test.c_str(); } //char转Ansistring #include <windef.h> void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString str = "Sample"; char chr[MAX_PATH]; strcpy( chr , str.c_str() ); } //Bool转AnsiString void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test=BoolToStr(CheckBox1->Checked); } //Ansistring转bool void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test="-1" CheckBox1->Checked= StrToBool( Test ); } //int转ansistring void __fastcall TForm1::Button1Click(TObject *Sender) { int i = 123; AnsiString str = IntToStr( i ); } //AnsiString转double void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "123"; long double d = StrToFloat( Test ); } //double转AnsiString void __fastcall TForm1::Button1Click(TObject *Sender) { double d = 123.456; AnsiString str = FloatToStr( d ); } //double转AnsiString并四舍五入 void __fastcall TForm1::Button1Click(TObject *Sender) { long double d = 123.456121212; AnsiString str = FloatToStrF( d , ffFixed ,5 , 4 ); //说明FloatTostrF里5代表从第几个数字的后一位开始四舍五入,4代表取4位小数。 //执行后得到str是123.4600。:roll: } //double转AnsiString使用类似vb的format函数 void __fastcall TForm1::Button1Click(TObject *Sender) { double d = 123.456; AnsiString str = FormatFloat( "000000.00" , d ); } //得到 000123.45,当然你可以使用"# . , ; E+ E- xx"等符号,你自己试试 :wink: //AnsiString转Tclor型 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "0x00FF8080"; TColor Col = StringToColor( Test ); } //Tcolor转AnsiString void __fastcall TForm1::Button1Click(TObject *Sender) { TColor Col = 0x00FF8080; AnsiString str = ColorToString( Col ); } //消除AnsiString 中的一部分字符串 代码: void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCDEF"; int First = 3; // 消除制定开头 int Length = 2; // 消除制定长度 AnsiString Dstr = Test.Delete( First , Length ); }//得到ABEF //在AnsiString 中插入字符串 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCDEF"; AnsiString Ins = "12345"; // 插入串 int Pos = 3; // 在哪插 AnsiString Istr = Test.Insert( Ins , Pos ); //得到AB12345CDEF } //取得ansi某一位字符 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCDEF"; AnsiString Npos = Test[3];//得到C } //取得AnsiString里最后一个字符 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCDEF"; char *Lstr = Test.AnsiLastChar();//得到F } //取出AnsiString字符,这个类似vb的mid函数! void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCDEF"; int First = 3; // 3开始取 int Length = 2; // 取2位 AnsiString Getstr = Test.SubString( First , Length ); //得到CD } //AnsiString的字母比较 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCDEF"; AnsiString Sample = "abcdef"; int Result = Test.AnsiCompare( Sample ); //返回1,不同!分大小写。 } void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCDEF"; AnsiString Sample = "abcdef"; int Result = Test.AnsiCompareIC( Sample ); //返回0,相同!没有分大小写,哈哈 } //在AnsiString中寻找字符 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCDEF"; AnsiString Sample = "E"; int Result = Test.Pos( Sample ); //返回5,如果你写Sample="haha",就返回0,找不到,哈哈 } //在AnsiString中找字符串,和上一个类似 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCDEF"; AnsiString Sample = "EF"; int Result = Test.Pos( Sample ); //返回5,即E字符的位置 } //判断字符串长度,类似vb的len void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "拿金币来"; int Len = Test.Length(); //返回8 } //取得字符串,类似vb的left void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "小苹果然看了这篇文章"; AnsiString SLstr = Test.SetLength(6); }//得到"小苹果" //检测双字节字串 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString ChkStr = "你好"; int ChkPos = 1 ; if ( ByteType( ChkStr , ChkPos ) == mbSingleByte ){ Edit1->Text="0"; } else{ Edit1->Text="1"; }//返回1,如果你写ChkStr="fxxk",就返回0 } //检测空字符串 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = ""; bool chk = Test.IsEmpty(); if (chk ) Edit1->Text="1";//返回1 } //全部变小写vs全部变大写 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCdef"; AnsiString Lstr = Test.LowerCase(); } 代码: void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = "ABCdef"; AnsiString Ustr = Test.UpperCase(); } //类似vb中Trim 的去空格函数 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = " ABCDEF "; AnsiString TLstr = Test.TrimLeft(); AnsiString TRstr = Test.TrimRight(); AnsiString Tstr = Test.Trim(); } //但是,这个处理不了全角的空格 代码: AnsiString __fastcall TForm1::TrimStr( AnsiString Tm , AnsiString LR ) { // LR … L:左除去 R:右除去 B:dou除去 int len; // 左除去 if ( LR == "L" || LR == "B" ){ len = Tm.Length(); while ( Tm.SubString(1,1) == " " || Tm.SubString(1,2) == " "){ // 半角除去 if ( Tm.SubString(1,1) == " " ){ Tm = Tm.SubString(2,len); len = Tm.Length(); } // 全角除去 else if ( Tm.SubString(1,2) == " " ){ Tm = Tm.SubString(3,len); len = Tm.Length(); } } } // 右除去 if ( LR == "R" || LR == "B" ){ len = Tm.Length(); while ( Tm.SubString(len,1) == " " || Tm.SubString(len-1,2) == " " ){ // 半角除去 if ( Tm.SubString(len,1) == " " ){ len = Tm.Length(); Tm = Tm.SubString(1,len-1); len = Tm.Length(); } // 全角除去 else if ( Tm.SubString(len-1,2) == " " ){ len = Tm.Length(); Tm = Tm.SubString(1,len-2); len = Tm.Length(); } } } return Tm; } void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Test = " 拳脚 "; AnsiString Ret = TrimStr(Test,"B") } //相同字符重复输入 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Soc = AnsiString::StringOfChar( '*' , 100 ); Edit1->Text=Soc ;//显示100个* } //字符串替换 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Str = "Borland C++ Builder is free"; AnsiString From = "C++ Builder"; AnsiString To = "Delphi"; AnsiString Result; Result = StringReplace( Str, From, To, TReplaceFlags() << rfReplaceAll << rfIgnoreCase ); //<<后是参数,得到Borland Delphi is free } //全角变半角 AnsiString Zen = "1234567890"; int Len = Zen.Length(); char buf[MAX_PATH]; ZeroMemory( buf, sizeof( buf ) ); LCMapString( GetUserDefaultLCID(), LCMAP_HALFWIDTH, Zen.c_str(), Len, buf, sizeof( buf ) ); AnsiString Han = AnsiString( buf ); Edit1->Text=Han; //半角变全角 void __fastcall TForm1::Button1Click(TObject *Sender) { AnsiString Han = "1234567890"; int Len = Han.Length(); char buf[MAX_PATH]; ZeroMemory( buf, sizeof( buf ) ); LCMapString( GetUserDefaultLCID(), LCMAP_FULLWIDTH, Han.c_str(), Len, buf, sizeof( buf ) ); AnsiString Zen = AnsiString( buf ); }