qq_33041689 2017-04-21 13:09 采纳率: 0%
浏览 1022
已结题

mfc中将txt文件的内容读到listcontrol时不能循环读入的问题

BOOL CTsgDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();

m_ListCtrl1.SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_CHECKBOXES);
m_ListCtrl1.InsertColumn(0, L" ", LVCFMT_LEFT, 20);
m_ListCtrl1.InsertColumn(1, L"序号", LVCFMT_LEFT, 80);
m_ListCtrl1.InsertColumn(2, L"时间", LVCFMT_LEFT, 120);
m_ListCtrl1.InsertColumn(3, L"编号", LVCFMT_LEFT, 80);
m_ListCtrl1.InsertColumn(4, L"FID", LVCFMT_LEFT, 80);
m_ListCtrl1.InsertColumn(5, L"内容", LVCFMT_LEFT, 120);
m_ListCtrl1.InsertColumn(6, L"LID", LVCFMT_LEFT, 80);
m_ListCtrl1.InsertColumn(7, L"内容", LVCFMT_LEFT, 120);
m_ListCtrl1.InsertColumn(8, L"TID", LVCFMT_LEFT, 80);
m_ListCtrl1.InsertColumn(9, L"内容", LVCFMT_LEFT, 120);
m_ListCtrl1.InsertColumn(10, L"记录", LVCFMT_LEFT, 300);

char* old_locale = _strdup(setlocale(LC_CTYPE, NULL));
setlocale(LC_CTYPE, "chs");
CStdioFile file;
file.Open(TEXT("TSG.txt"), CFile::modeRead);

CString s;
int n = 0;//控制行数,具体你自己定
while (TRUE == file.ReadString(s))
{
    if (s.Find(L" ") == -1 && s.GetLength() <= 100)
        continue;
    else

    {
        CString s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, s11;
        int pos = -1;
        pos = s.Find(L" ");
        s1 = s.Left(pos);
        s = s.Right(s.GetLength() - pos-1);
        pos = s.Find(L" ");
        s2 = s.Left(pos);
        s = s.Right(s.GetLength() - pos - 1);
        pos = s.Find(L";");
        s3 = s.Left(pos);
        s = s.Right(s.GetLength() - pos - 1);
        pos = s.Find(L" ");
        s4 = s.Left(pos);
        s = s.Right(s.GetLength() - pos-1);
        pos = s.Find(L":");
        s5 = s.Left(pos);
        s = s.Right(s.GetLength() - pos - 1);
        pos = s.Find(L"L");
        s6 = s.Left(pos);
        s = s.Right(s.GetLength() - pos);
        pos = s.Find(L":");
        s7 = s.Left(pos);
        s = s.Right(s.GetLength() - pos - 1);
        pos = s.Find(L"T");
        s8 = s.Left(pos);
        s = s.Right(s.GetLength() - pos);
        pos = s.Find(L":");
        s9 = s.Left(pos);
        s = s.Right(s.GetLength() - pos - 1);
        pos = s.Find(L" ");
        s10 = s.Left(pos);
        s = s.Right(s.GetLength() - pos-1);
        s11 = s.Right(s.GetLength());

        m_ListCtrl1.InsertItem(n, s1);
        m_ListCtrl1.SetItemText(n, 1, s2);
        m_ListCtrl1.SetItemText(n, 2, s3);
        m_ListCtrl1.SetItemText(n, 3, s4);
        m_ListCtrl1.SetItemText(n, 4, s5);
        m_ListCtrl1.SetItemText(n, 5, s6);
        m_ListCtrl1.SetItemText(n, 6, s7);
        m_ListCtrl1.SetItemText(n, 7, s8);
        m_ListCtrl1.SetItemText(n, 8, s9);
        m_ListCtrl1.SetItemText(n, 9, s10);
        m_ListCtrl1.SetItemText(n, 10, s11);
        n++;
    }

}
setlocale(LC_CTYPE, old_locale);
free(old_locale);// TODO:  在此添加额外的初始化

return TRUE;  // return TRUE unless you set the focus to a control
// 异常:  OCX 属性页应返回 FALSE

}
以上为代码
图片说明
上图为txt文件内容
图片说明
上图为运行结果

为什么不能正常读入?

  • 写回答

2条回答

  • oyljerry 2017-04-21 14:08
    关注

    先把s1到s11都打印出来看拿到正确数据吗?不然就是解析字符串各个字段有问题。

    评论

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图