双11狂欢大促

盲盒赢 定制羽绒服

开启惊喜盲盒,抽取你的专属好礼

— 惊喜奖品抢先看 —

高手帮忙看看代码哪里有问题啊。。。

jax_lee jax_lee 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
//获取子字符串个数
int GetSubStrCount(CString &str,char cFlag)
{
cFlag = ',';
int i = 0;
BOOL isHas = FALSE;

for (int iStart = -1; -1 != (iStart = str.Find(cFlag,iStart+1)) ; i++)
{
isHas = TRUE;
}

if (!isHas)
{
return 0;
}
else
{
return i+1;
}
}

//获取子字符串
// i 序号 0
CString GetSubStr(CString &str,int i,char cFlag)
{
i = 0;
cFlag = ',';
int iStart = -1;
int iEnd = 0;
int j = 0;
int iStrCount;

iStrCount = GetSubStrCount(str,cFlag);

if (i>iStrCount -1 || i<0)
{
str = "";
return str;
}
else
{
//do nothing
}

if (i == iStrCount-1)
{
i = iStrCount;

for (;j<i-1;j++)
{
iStart = str.Find(cFlag , iStart+1);
}

return str.Mid(iStart+1 , str.GetLength()-iStart-1);
}
else
{
//do nothing
}

for (; j<i; j++)
{
iStart = str.Find(cFlag , iStart+1);
}

iEnd = str.Find(cFlag , iStart+1);
return str.Mid(iStart+1 , iEnd-iStart-1);
}


void CGpsDataView::OnFileRead()
{
// TODO: 在此添加命令处理程序代码
CStdioFile myFile;
CString oneLine;
int i = 0;
char cFlag = ',';
CString subStr[20];



if(!myFile.Open(_T("gps.txt"),CFile::modeRead | CFile::typeText))
{
AfxMessageBox(_T("打开文件错误!"));
return;
}
else
{
/*do nothing*/
}

while (myFile.ReadString(oneLine))
{
MessageBox(oneLine);
int j = GetSubStrCount(oneLine,cFlag);

for (j;j>0;j--)
{
subStr[j] = GetSubStr(oneLine,i,cFlag);

MessageBox(subStr[j]);
oneLine = oneLine.Right( strlen((LPSTR)(LPCTSTR)oneLine)
-strlen((LPSTR)(LPCTSTR)subStr[j]));
}
}

myFile.Close();
}

oneLine 的形式是:$GPGGA,010648.00,2307.594068,N,11321.993772,E,1,07,1.1,31.1,M,-5.2,M,,*48
我循环提取一段段 只能显示出$GPGGA 这一段,老出来这一个。。。。
为什么。。
...全文

相关推荐

评论 3
收藏 已收藏
分享
返回顶部
jax_lee
C++ 语言 65,214 成员 250,514 内容