cstring temp = “[THR] THR=143 [Phase1] 档位=1 最大=95 标准时间=3 [Phase2] 档位=4 最大=130 标准时间=8 [Phase3] 档位=5 最大=140 标准时间=16 [Phase4] 档位=2 最大=95 标准时间=3”
我怎么得到 THR 后面的值? 以及挡位 最大后面的各个值?
最近字符串解析我都搞不定,大家帮忙
我怎么得到 THR 后面的值? 以及挡位 最大后面的各个值?
最近字符串解析我都搞不定,大家帮忙
解决方案 »
- YFOPCSDK.dll谁用过? 是否免费??(一个开发OPC客户端的动态库)
- 在VS 2003里使用hash_map
- 大家好,我想问一个关于文件内存映射的问题!
- 对话框上如何显示位图背景和几个位图按钮
- 怎样在win2k下拦截ctrl+alt+del
- 怎样判断一个文件夹内有没有指定的文件夹?
- 有没有高手能告诉我用ISAPI的Filter做这些事情的可行性:
- 请问,在程序窗口运行时,如何在任务栏上不显示
- com接口的输入参数类型加不加[in]有区别吗?看起来同样啊。
- 一个链接错误解决不了,请帮忙
- 装了最新的platform sdk后项目编译报错
- 想创建一个owner窗口,但又希望这个窗口是附着在另一个窗口上的,怎么创建?
int t = temp.Find("THR="); CString s = temp.Mid(t+4, temp.Find(' ', t)-t-4);
int tt = atoi(s.GetBuffer(0));挡位 最大后面的各个值?
=========================
类推。
//也就是[Phase4]里的"标准时间=3"后面加一个" "
//每个"="和" "之间的数据都放在字符串数组中
//"THR=143"中的143是第一个,档位=1中的1是第二个,最大=95中的95是第3个,依次类推
//每个[THR]中有13个“=”,自己看看再去组织剩下的代码吧
//下面的代码编译通过, strData的值如果有问题,调整下void query()
{
CString strData =
"[THR] THR=143 [Phase1] 档位=1 最大=95 标准时间=3 [Phase2] 档位=4 最大=130 标准时间=8 [Phase3] 档位=5 最大=140 标准时间=16 [Phase4] 档位=2 最大=95 标准时间=3 ";
CStringArray strDataArr;
CString strSpace = " "; //间隔符
CString strQuery = "="; //搜索的字符串
int nBeginPos = 0;
do
{
nBeginPos = strData.Find(strQuery, nBeginPos);
if (nBeginPos == -1)
break;
int nEndPos = strData.Find(strSpace, nBeginPos);
if (nEndPos == -1)
nEndPos = strData.GetLength();
CString strValue = strData.Mid(nBeginPos+1, nEndPos-nBeginPos-1);
nBeginPos = nEndPos;
strDataArr.Add(strValue); }while(nBeginPos > 0);
}
有杂乱无章的空格 所以ini读取方式不行
rString 得到的字符串
lpszFullString 原来要分割的字符串
iSubString 需要分割的第几段
chsep 按照什么字符来划分
可以按照空格划分,然后寻找“=”,等号后面的就是你要的。
代码如下:int iStart=0, iEnd=0, value=0;
iStart = 4 + temp.Find("THR=");
iEnd = temp.Find(" ", iStart);value = atoi(temp.Mid(iStart, iEnd-iStart));//answer