惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy International News Feed
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
Troy Hunt's Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
Attack and Defense Labs
Attack and Defense Labs
S
Secure Thoughts
V2EX - 技术
V2EX - 技术
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
O
OpenAI News
Cloudbric
Cloudbric
Google Online Security Blog
Google Online Security Blog
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Help Net Security
Help Net Security
Cyberwarzone
Cyberwarzone
G
GRAHAM CLULEY
L
Lohrmann on Cybersecurity
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Spread Privacy
Spread Privacy
NISL@THU
NISL@THU
N
News and Events Feed by Topic
T
Tenable Blog
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
The Hacker News
The Hacker News
C
CXSECURITY Database RSS Feed - CXSecurity.com
宝玉的分享
宝玉的分享
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
美团技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Tailwind CSS Blog
V
Visual Studio Blog
P
Proofpoint News Feed
Webroot Blog
Webroot Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Hugging Face - Blog
Hugging Face - Blog
腾讯CDC
L
LangChain Blog
The Register - Security
The Register - Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东

博客园 - lmllouk

找nopcommerce兼职人员 ArachNode.Net 之配置 CS2001 CS2008 Adobe CS4 Dreamweaver 产品许可证已过期 CSS实现网页背景渐变 jQuery 多级下拉菜单解决方案 确保已安装类型(.aspx)的应用程序 sql server 行合并 灌水 的论坛 取消svn版本控制 - lmllouk - 博客园 抓屏 - lmllouk - 博客园 fatal error C1083: Cannot open include file: 'ceconfig.h': No such file or directory PowerDesigner constraint name 长度限制问题 不同服务器数据库之间的数据操作 使用PowerDesigner进行代码生成(转) 怎样给 ActiveX 控件签名并打包发布 温州到杭州火车 通过CertEnroll在CA上(1创建证书请求2得到证书3安装证书) orcale 常见错误
C++ BUILDER AnsiString 用法 - lmllouk
lmllouk · 2009-10-12 · via 博客园 - lmllouk

最近编程用到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 );
}