首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么解析Edit控件内输入的内容

2012-02-28 
如何解析Edit控件内输入的内容Edit控件内输入内容为:1,3+5,6+10,89+20 100+35每组参数使用“逗号”或“空格”

如何解析Edit控件内输入的内容
Edit控件内输入内容为:
1,3+5,6+10,89+20 100+35
每组参数使用“逗号”或“空格”分隔

要求解析结果:
得到共有几组参数;提取“+”前后的数字作为下一步应用的参数

有提示代码最好,多谢!

[解决办法]
用TStringList,可以看看这个帖子
http://topic.csdn.net/t/20051122/20/4411392.html。
[解决办法]
String str = "1,3+5,6+10,89+20 100+35";
str = StringReplace(str, ",", "\r\n", TReplaceFlags() << rfReplaceAll);
str = StringReplace(str, " ", "\r\n", TReplaceFlags() << rfReplaceAll);
TStringList *sg = new TStringList;
sg->Text = str;
ShowMessage(sg->Text);
[解决办法]
直接用StringReplace函数 把里面的, 和 空格 都替换成\r\n
然后赋值给一个TStringList

sg->text 就是分割好的内容
要看有几组 直接抓sg->Count
抓+号前面的 也很容易 String.Pos("+") 


[解决办法]
int i,j,m,n;
String a= "1,3+5,6+10,89+20 100+35";
a = StringReplace(a, " ", ",", TReplaceFlags() << rfReplaceAll);
TStringList *list=new TStringList;
list->Delimiter= ',';
list->DelimitedText=a;
for (i=0;i <list-> Count ;i++)
{
j= list-> Strings[i].Pos("+");
if(j>0)
{
m=list->Strings[i].SubString(0,j-1).ToInt();
n=list->Strings[i].SubString(j+1,list->Strings[i].Length()).ToInt();
// m,n就是参数
}
}

热点排行