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

MFC如何避免由逗号隔开的数据

2012-10-17 
MFC如何处理由逗号隔开的数据?DATA1,010708.000,2425.6352,N,10922.7696,EDATA2,A,3,14,29,31,32,22,30,16

MFC如何处理由逗号隔开的数据?
DATA1,010708.000,2425.6352,N,10922.7696,E
DATA2,A,3,14,29,31,32,22,30,16,25,20
这样两组数据被存放在TXT文档中,我实现了(我觉得)逐行读取数据,但是不会将数据拆分并判断是一行开头是DATA1还是DATA2,求告诉怎么判断

C/C++ code
void CNo3Dlg::OnButton2() {CStdioFile myFile; CFileException fileException; if(myFile.Open(m_strFileName,CFile::modeRead),&fileException) { CString strContent; int order=0; while(myFile.ReadString(strContent)) {     if(1==order)     {        AfxMessageBox(strContent); //在此处添加显示命令    }    order=order+1;}}    else    {        TRACE("Can't open file");     }myFile.Close(); }


[解决办法]
这个要自己写的,非常容易,曾经写过一个解析类,自己定义分割符号
STL版:
string的Find,然后用substr来获取内容,要用While循环获取

MFC版:
CString的Find,然后用Mid来获取内容,要用While循环获取

有个例子,我的Blog,注意看那个add_SonDomin函数,完整的解析分割字符串

http://blog.csdn.net/tiger9991/article/details/7980948

[解决办法]
CString::Find 
CString::Mid
CString::Left
CString::Right
组合使用
[解决办法]
C/C++ code
#include <string.h>#include <stdio.h>char string[] = "DATA1,010708.000,2425.6352,N,10922.7696,E";char seps[]   = ",";char *token;void main( void ){    printf( "%s\n\nTokens:\n", string );    /* Establish string and get the first token: */    token = strtok( string, seps );    while( token != NULL )    {        /* While there are tokens in "string" */        printf( "%s\n", token );        /* Get next token: */        token = strtok( NULL, seps );    }}
[解决办法]
MFC中其实很简单 一个函数就搞定了

AfxExtractSubString(ChildString,GlobalString,i,',');

CSDN具体看看这个函数

DATA1,010708.000,2425.6352,N,10922.7696,E 有4个逗号

for(int i=0;i<4+1;i++) 
{
 AfxExtractSubString(ChildString,GlobalString,i,',');
}

热点排行