AnsiString用法(转)

源: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 ); 
}

 

posted @ 2015-08-18 10:20  酒醉的Tiger  阅读(900)  评论(0编辑  收藏  举报