MFC中如何读取.txt文件中的数组

2024-11-28 19:00:21
推荐回答(3个)
回答1:

这么规律的数据就很容易处理了。先readline读一行数据,第一行舍弃。往后每次读一行,然后用字符分割函数,分割成两个字符串再转换一下就行了。你可以选择用for,也可以用while,判断为#就退出。以下是我从网页源码中提取背景音乐地址的代码,你可以看看
bool CMyWinInet_1Dlg::findstring(CString str)
{
char *p=NULL;
CString Music_name="";
CString Music_link="";
CString name="";
CString link="";
bool tis=0;
bool flag=0;
p=str.GetBuffer(str.GetLength()+1);//把字符串传给字符指针
for(;*p!='\0';p++)//从网页源代码中提取音乐地址
{
if(*p==','){tis=1;p++;}
if(tis) name+=*p;
if(*p==':')
{
tis=0;
if(name=="xsong_name:"||name=="xsong_url:")
{
p++;
for(;*p!=',';p++)
{
if(name=="xsong_name:")
{Music_name+=*p; flag=0;link=Music_name;}
if(name=="xsong_url:")
{Music_link+=*p;flag=1;}
}
if(flag)
{
int count = m_Grid.GetItemCount();

CString str;
str.Format(_T("%d"),count+1);
m_Grid.InsertItem(count,"");
m_Grid.SetItemText(count,0,link);
m_Grid.SetItemText(count,1,Music_link);
}
}
name="";
Music_name="";
Music_link="";
}
}
return 0;
}

回答2:

CStdioFile file = new CStdioFile();
file.open(filename,mode);
CString str;
while(file.ReadLine(str)!="#;")
{
将该行的str转换成数组数字,进行后续处理
}
file.Close();

基本思路就是这样,可能一些语法不太对,楼主再确认下

回答3:

用CStdioFile,可以按行读取数据,并判断是否遇到‘#’ ,代码自己写吧。