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个回答

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

希望帮到你


 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;
        }
    }
Dir_miao
Dir_miao 谢谢,我试试
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐