读书人

AnsiString字符串拆分有关问题

发布时间: 2013-01-01 14:04:19 作者: rapoo

AnsiString字符串拆分问题
本帖最后由 zheguzai000 于 2012-11-20 11:32:07 编辑 现在通过TcpServer拿到数据格式如下,其中#用来区分不通数据类型,|用来区分数据标志和数据

FAN|0#LED|0#BUZZER|0#HY|8090#YD|232#YHW|32595#ZD|0#GZ|14279#WD|19.13#SD|53.4427#CSB|8#

上面的数据第一次通过的#拆分后,就会得到下面的数据
FAN|0
LED|0
BUZZER|0
HY|8090
YD|232
YHW|32595
ZD|0
GZ|14279
WD|19.13
SD|53.4427
CSB|8

在通过|拆分就可以把标志和数据分开,不知道C++ builder里边怎么拆分这个的,现在的字符串存储在AnsiString里边,没找到相关的方法。
求大虾指点。。

[解决办法]
用TStringList
就可以获取分割之后的数据了。
[解决办法]


String str="FAN
[解决办法]
0#LED
[解决办法]
0#BUZZER
[解决办法]
0#HY
[解决办法]
8090#YD
[解决办法]
232#YHW
[解决办法]
32595#ZD
[解决办法]
0#GZ
[解决办法]
14279#WD
[解决办法]
19.13#SD
[解决办法]
53.4427#CSB
[解决办法]
8#";
//先按"#"分割
TStringList *slt=new TStringList;
slt->Delimiter='#';
slt->DelimitedText=str;

String ss,sv;
int ipos;
for(int i=0;i<slt->Count;i++)
{
ss=slt->Strings[i];
if(ss!="")
{
if((ipos=ss.Pos("
[解决办法]
"))>0)
{
sv=ss.SubString(ipos+1,ss.Length()-ipos);//获取值
ss.SetLength(ipos-1); //获取类型名
//doing
。。。。
}
}
}
delete slt;

读书人网 >C++ Builder

热点推荐