mfc读取文件一行的内容|MFC中怎么读取Excel文件里的每个单元格内容

|

⑴ MFC中读取TXT文件中的数据和行列数

既然有1位数的数据也有4位数的数据,那么如果txt中没有特意的回车,行数和列数不可能确定。如果有回车的话,简单,用#include <string.h>char *strtok( char *str1, const char *str2 );就能解决。先用getline()一行读出一个str,并累加行数,然后char *result = NULL;char string[100][100];int x = 0;result = strtok( str, " ");while( result != NULL ) {strcpy(string[x++] , result);result = strtok( NULL, " " ); }这样用一个string数组就可以把全部数据保存下来。x记录了总数,然后x除以行数就是列数。 今天有空了,帮你把程序全写出来:#include<iostream>#include<string>#include<fstream>using namespace std;void main(){char ch[100] = "\0";char b[100][100];int x=0,y=0;ifstream fin("123.txt",ios::in);fin.getline(ch,100);while(!fin.eof()){ ++x; cout<<ch<<endl; char *result = NULL; result = strtok(ch,","); while( result != NULL ) { strcpy(b[y++],result); cout<<b[y-1]<<endl; result = strtok( NULL, "," ); } memset(ch,0,100); fin.getline(ch,100);} fin.close();} //已运行过了,没问题,b[100][100]是所有元素,x为行数,y/x为列数。

⑵ 如何在mfc中打开一个文本文件并读取如下的一行数据存入数组

CStdioFile file = new CStdioFile(); file.open(filename,mode); CString str; while(file.ReadLine(str)!="#;") { 将该行的str转换成数组数字,进行后续处理 } file.Close(); 基本思路就是这样,可能一些语法不太对,楼主再确认下

⑶ MFC中怎么读取Excel文件里的每个单元格内容

//第一步:打开文件CFile f;CFileException e;// 打开文件if (!f.Open("D:\\Book1.xls", CFile::modeRead, &e)){TCHAR szError[1024];e.GetErrorMessage(szError, 1024);AfxMessageBox(szError);return;}//第二步:读取版本号// 读取版本while (dwPos < dwLen){nRead = f.Read((void*)&RecNo, 2);if (RecNo == XL_BOF){WORD Ver, Type;f.Read((void*)&RecLen, 2);f.Read((void*)&Ver, 2);f.Read((void*)&Type, 2);f.Seek(RecLen, CFile::current);int ver = 0;switch (Ver){case BIFF7:ver = 7;break;case BIFF8:ver = 8;AfxMessageBox("Biff8");break;}int type = 0;switch (Type){case WORKBOOK:type = 5;AfxMessageBox("Workbook");break;case WORKSHEET:type = 16;AfxMessageBox("Worksheet");break;case CHART:type = 32;AfxMessageBox("Chart");break;}break;}dwPos = f.GetPosition();}//第三步:读其它数据f.SeekToBegin();dwPos = f.GetPosition();// 读表格数据while (dwPos < dwLen){nRead = f.Read((void*)&RecNo, 2);switch (RecNo){case XL_BOF:{f.Read((void*)&RecLen, 2);AfxMessageBox("Bof");}break;case XL_BOUNDSHEET:{DWORDtemp;BYTEvisi;BYTEtype;TCHARname;f.Read((void*)&RecLen, 2);f.Read((void*)&temp, 4);f.Read((void*)&visi, 1);f.Read((void*)&type, 1);f.Read((void*)&StrLen, 2);f.Read((void*)&name, StrLen);char buf[128];memset(buf, 0x0, 128);strncpy(buf, &name, StrLen);AfxMessageBox(buf);}break;case XL_DIMENSION:f.Read((void*)&RecLen, 2);f.Seek(RecLen, CFile::current);AfxMessageBox("Dimension");break;case 0xE2:// INTERFACEDf.Read((void*)&RecLen, 2);AfxMessageBox("e2");break;case XL_SST:f.Read((void*)&RecLen, 2);f.Seek(RecLen, CFile::current);AfxMessageBox("SST");break;case XL_NUMBER:f.Read((void*)&RecLen, 2);AfxMessageBox("Number");break;case XL_STRING:f.Read((void*)&RecLen, 2);AfxMessageBox("String");break;case XL_RK:f.Read((void*)&RecLen, 2);AfxMessageBox("RK");break;case XL_LABEL:{f.Read((void*)&RecLen, 2);AfxMessageBox("Label");}break;case 0xD6:f.Read((void*)&RecLen, 2);AfxMessageBox("RString");break;case XL_EOF:dwPos = dwLen;AfxMessageBox("Eof");break;default:nRead = f.Read((void*)&RecLen, 2);if (nRead == 0)dwPos = dwLen;break;}}//第四步:关闭文件f.Close();

⑷ 如何在MFC中读取txt文件中的数据

MFC主要读写文件的类是CFile,而CStdioFile类是派生自CFile类的,主要增加了一个按行的方式读取/写入文件每行字符串的功能读写TXT文件,写入和输出必须统一格式CStdioFilemyFile,File;if(myFile.Open(CBApp::getCurrMolePath()+_T("filename.txt"),CFile::modeRead)){//读取myFile.ReadString(str);myFile.Close();}else{//创建File.Open(CBApp::getCurrMolePath()+_T("filename.txt"),CFile::modeWrite|CFile::modeCreate);File.WriteString(sFileName);File.Close();}//写入File.Open(CBApp::getCurrMolePath()+_T("filename.txt"),CFile::modeWrite);File.WriteString(sFileName);File.Close();

⑸ MFC如何一秒钟读取一行文本数据,并存到数组元素中!

用GetDlgItemText()读取文本框内容到stdin,然后用定时器在用gets()读取。不过我觉得你这样完全没有必要啊,使用GetDlgItemText()可以读取控件全部的文本内容,你隔一秒解析一次就可以了,没有必要搞的这么复杂

⑹ MFC中在文件操作过程中读取指定哪一行信息该怎么写呀

用文件指针啊,有个函数

⑺ MFC读取txt的第一行内容(详细代码。。。)

CStdioFile mFile;if ( mFile.Open("d:\\test.txt",CFile::modeReadWrite) ){CString strData = "";mFile.ReadString(strData);mFile.Close();}


赞 (0)