Dir_miao
Dir_miao
采纳率16.7%
2016-08-05 08:03 阅读 829

MFC中文件查找匹配及输出。。。。。拜上~

救命啊。。。关于MFC文件查找,匹配,输出问题。。。 20C

ec26ca
06696c
707be8
d0fa1d
94103e
96103e
16e543
d4ee07
c01885
40c62a

这样一个A.txt文本;

ec26aaca 01
066aa96c rf
961aa03e 06
16e54aa3 07
d4eae07b 08
c018a85s 09
40c62a 10
ec2aa6ca 11
0857aa00 12
ec6aac9f 13
8c2aa10a 14
9c28ef 15
c88550 16
cc2aa48f 17

这样一个B.txt文本,

怎么在MFC中编程实现在B文件中找到A文件中的内容,然后输出到EDIT中,
比如A文本中的“40c62a”这一行,要在B文本中找到包含这一行的内容(即“40c62a 10”这一行),然后把“40c62a 10”这一行输出到EDIT里面

CString buf1[256];
CStdioFile file;
CString str1;
file.Open("F:\A.txt",CFile::modeRead);
for(int i=0;file.ReadString(str1);i++)
{A
buf1[i]==str1.Left(str1.Find('\r\n'));
CString buf2[256];
CStdioFile read;
CString str2,strTemp,str3;
read.Open("F:\B.txt",CFile::modeRead);
for(int j=0;read.ReadString(str2);j++)
{
buf2[j]==str2.Left(str2.Find(' '));
if(buf2[j]==buf1[i])
{
str3.Format("%x\n",buf2[j]);
strTemp+=str3;
strTemp+="\r\n";
}
SetDlgItemText(IDC_EDIT1,strTemp);
}
}
自己写的程序,帮忙看下错哪里了?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • hahaing119 hahaing119 2016-08-05 08:16

    建议用stl中的fstream,用std::getline读入一行数据,对于A中用0857aa00作为std::set中的内容,B文件用0857aa00做std::map的key,后面可以定义一个结构体表明B中0857aa00 之后的内容以及所在行,然后在用A的set在B的map进行查找输出。

    点赞 1 评论 复制链接分享
  • hahaing119 hahaing119 2016-08-05 08:20

    希望帮到你

    
     sep为间隔,比如a|b|c,那么sep为|
    typedef std::vector<std::string> stringarray;
    void parse_fields(const char* data, int length, char sep, stringarray& fields)
    {
        fields.clear();
        int index = 0, pos = 0;
        for ( index = 0; index <= length; index++ )
        {
            if ( data[index] == sep || data[index] == '\0' )
            {
                fields.push_back(std::string(data + pos, (index - pos)));
                pos = index + 1;
            }
        }
    
    点赞 1 评论 复制链接分享

相关推荐