天天看點

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 );

}

繼續閱讀