要读取注释,文档里文件是这样的: ///////////////////////////////////////////
// name : xxxx
// class : xxx
// school: xxx
//////////////////////////////////////////
下面还有好多乱七八糟的内容,只需要把name class,school:XXX读出来,写出文件去我现在已经做到打开这个文件,并用readstring一行一行的读,
然后判断 文件名.find("//////")>0
我想逻辑应该是判断有多个"/"时,做个记号,往下读取,取得后去掉name前的//,得到我要的东西,
请高手帮帮我,应该怎么写啊?能详细点吗,我感激不尽
// name : xxxx
// class : xxx
// school: xxx
//////////////////////////////////////////
下面还有好多乱七八糟的内容,只需要把name class,school:XXX读出来,写出文件去我现在已经做到打开这个文件,并用readstring一行一行的读,
然后判断 文件名.find("//////")>0
我想逻辑应该是判断有多个"/"时,做个记号,往下读取,取得后去掉name前的//,得到我要的东西,
请高手帮帮我,应该怎么写啊?能详细点吗,我感激不尽
解决方案 »
- 多工程编译问题?
- 关于C++的一个简单问题,请大家帮忙,我已经困惑很久了。谢谢
- 我在父窗体的指定客户区域,创建一个子窗体,结果子窗体无法屏蔽回车键和退出键哦!~~~~~求解!
- 怎么在一个基于对话框的程序中显示图像?
- CSOCKET通信的问题,请帮帮忙!!!
- Oracle数据库编程的一个怪问题,郁闷中。。。 。。。
- 求opengl不用auxDIBImageLoad加载图片方法,不用glaux.lib库
- sombody help me
- 好伤心呀,给人家提交了一份bug list
- vc获取TfcStatusBar文本问题
- 为什么无法画两道线?
- 救急啊。关于音频库G729a.lib与atlimage.h的冲突问题?
最好是按行读取,用CStdioFile
如果不考虑性能,你直接在得到的CString里调用Find查找是否有这3个name,class,school中的一个.
有就解析,没有就跳过.解析的时候你一个一个字符比对就行了.
一行一行地搜 ////////
搜到就把标记打开
搜每行都检查标记,关的时候不做处理,打开的话检查一行是否同时有"//" "class" "name"
有的话用CString的函数把不需要的部分剔除,保留有用的写到文件去
..........
提供一个思路,写去吧
HOSTNAME={TEST}
DBSource={SFCDB}
UserID={EPSN}
PWD={EPSN}
CString ConForm::LoadIniFile(CString strParam)
{
strParam.TrimLeft();
strParam.TrimRight();
char tmp[2048];
CString strTmp;
CStdioFile File;
int st,en;
if(File.Open("PSN.INI",CFile::modeRead))
{
File.Read(tmp,sizeof(tmp));
strTmp=tmp;
st=0;st=strTmp.Find(strParam+"={",0)+strParam.GetLength()+2;
en=0;en=strTmp.Find("}",st+1);
strTmp=strTmp.Mid(st,en-st);
File.Close();
return strTmp;
}
else
{
MessageBox("Open PSN.ini File Error!","SMO WARNING",MB_ICONSTOP);
return "";
}
}你自己看看可能對你有用!!!
{
if (!str.IsEmpty())
{
if (str.Find("////")>0)
{
我已经一行一行读取,下面应该怎么写啊
//打开文件
CStdioFile out ,out1;
out1.Open(sFileName, CFile::modeRead);
//读取文件
CString strLine = _T("");
int Txtcount=0;
while (out1.ReadString(strLine))
{
Txtcount++;
}
out1.Close();
CString sr;
out.Open(sFileName, CFile::modeRead);
for(int ntxt=0; ntxt<Txtcount;ntxt++)
{
out.ReadString(sr);
}
out.Close();
读取一行,找关键词,找到了,继续往后找,直到遇到"/"为止。
把这过程中间的字符串得到即可。
也就是说从关键词开始,到"/"结束。