MFC中如何读取.txt文件中的数组 20
3个回答
展开全部
这么规律的数据就很容易处理了。先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;
}
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;
}
追问
由于本人之前没有接触过C++,所以读懂语句很费劲!哎~~~
追答
jiaoyuqian2010给的思路基本上就是那样了。只是转换而已~
CString str,num1,num2;
bool flag=0;
char *p=NULL;
while(file.ReadLine(str)!="#;")
{
flag=0;
p=str.GetBuffer(str.GetLength()+1);//把字符串传给字符指针
for(;*p!='\0';p++)
{
if(*p==',')flag=1;
if(!flag)num1+=p;//num1是数据1
else num2+=p;//num2是数据2
}
}
这样可以了吗?
展开全部
CStdioFile file = new CStdioFile();
file.open(filename,mode);
CString str;
while(file.ReadLine(str)!="#;")
{
将该行的str转换成数组数字,进行后续处理
}
file.Close();
基本思路就是这样,可能一些语法不太对,楼主再确认下
file.open(filename,mode);
CString str;
while(file.ReadLine(str)!="#;")
{
将该行的str转换成数组数字,进行后续处理
}
file.Close();
基本思路就是这样,可能一些语法不太对,楼主再确认下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用CStdioFile,可以按行读取数据,并判断是否遇到‘#’ ,代码自己写吧。
追问
由于我是新手,您能不能把程序写的详细点!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询