MFC读写Excel、word文件。
#include int main () { FILE * fpPhoto, * fpText, * fpTarget ; int iRead ; char szBuf[100] ; printf ("请输入第一个文件名(jpg):\n") ; gets (szBuf) ; fpPhoto = fopen (szBuf, "rb") ; printf ("请输入第二个文件名(txt):\n") ; gets (szBuf) ; fpText = fopen (szBuf, "rb") ; printf ("请输入目的文件名(jpg):\n") ; gets (szBuf) ; fpTarget = fopen (szBuf, "wb") ;
求c++源代码
Windows自带的扫雷游戏源代码 C++的http://www.cn700.com/2005-4/20-154347.html或// ============================================================================ // 类名:main // 说明:英文单词拼写检查,并推荐正确单词示例源码 // 备注: // 编写:徐景周(jingzhou_xu@163.com) // 组织:未来工作室(Future Studio) // 日期:2005.12.1 // ============================================================================= #include #include #include #include #include #include #include "dictionary.h" using namespace std; void lower( string& s ); string strip_punct( const string& s ); void check_spelling( ifstream& in, Dictionary& dict ); int main( int argc, char* argv[] ) { // 如果命令行参数不对,提示错误信息 if (argc != 3) { cerr << "Usage: " << argv[0] << " wordlist_filename input_file\n"; return EXIT_FAILURE; } ifstream inf(argv[2]); if (! inf) { cerr << "Could not open " << argv[2] << "\n"; return EXIT_FAILURE; } // 开始导入字典到哈希表中 cout << "Loading dictionary, this may take awhile...\n"; Dictionary d(argv[1]); check_spelling(inf, d); inf.close(); // 调试时起暂停作用 system("pause"); return EXIT_SUCCESS; } // 单词内全部字母两两交换后,在字典中查找是否正确,正确则输出,否则 // 继续上述操作直到全部交换过为止 void AllLetter_Swap( int nPos, const string& word, Dictionary& dict ) { // 直到单词最后一个字母,结束递归 if( nPos == word.length() ) return; string strWord; char chLetter = word[nPos]; for( int j = nPos+1; j < word.length(); ++j ) { // 恢复原始单词值 strWord = word; // 互换指定nPos位置与其后字母 strWord[nPos] = strWord[j]; strWord[j] = chLetter; // 字典中查找,找到输出 if( dict.search( strWord ) ) cout << "\t\t" << strWord << endl; } // 递归调用 AllLetter_Swap( nPos+1, word, dict); } // 单词内相邻两字母交换后,在字典中查找是否正确,正确则输出,否则 // 继续上述操作直到最后两字母交换过为止 void AdjacentLetter_Swap( const string& word, Dictionary& dict ) { string strWord; for( int nPos = 0; nPos < word.length()-1; ++nPos ) { // 恢复原始单词值 strWord = word; // 两相邻字母互换(当前字母与相邻后面一个字母互换) char chLetter = word[nPos]; strWord[nPos] = strWord[nPos+1]; strWord[nPos+1] = chLetter; // 字典中查找,找到输出 if( dict.search( strWord ) ) cout << "\t\t" << strWord << endl; } } // 逐次删除单词中每个字母后,在字典中查找是否正确,正确则输出 void RemoveLetter( const string& word, Dictionary& dict ) { vector vecWord; // 存放删除单词字母后,正确单词的数组,用于避免有重复的正确单词输出 string strWord; for( int nPos = 0; nPos < word.length(); ++nPos ) { // 恢复原始单词值 strWord = word; // 删除一个字母 strWord.erase( nPos, 1 ); // 字典中查找,找到输出 if( dict.search( strWord ) ) { // 在前一次正确单词的数组中查找,如果存在的话,不再输出和压入到数组 vector::iterator Iter = vecWord.begin(); for( ; Iter != vecWord.end(); ++Iter ) { if( (*Iter) == strWord ) break; } // 否则不存在,则压入该正确单词到数组并输出 if( Iter == vecWord.end() ) { vecWord.push_back( strWord ); cout << "\t\t" << strWord << endl; } } } } // 逐次替换单词中每个字母为其它一个字母,在字典中查找是否正确,正确则输出 void ReplaceLetter( const string& word, Dictionary& dict ) { string strWord; string strAlpha = "abcdefghigklmnopqrstuvwxyz"; // 26个小写字母 for( int nPos = 0; nPos < word.length(); ++nPos ) { // 单词中逐次将每位字母用26个字母代替,判断是否正确单词 for( int nAlpha = 0; nAlpha < strAlpha.length(); ++nAlpha ) { // 恢复原始单词值 strWord = word; // 将单词strWord中nPos位置开始的1个字母,用字母串 // strAlpha中的nAlpha位置开始的1个字母代替 strWord.replace( nPos, 1, strAlpha, nAlpha, 1 ); // 字典中查找,找到输出 if( dict.search( strWord ) ) cout << "\t\t" << strWord << endl; } } } // 逐次在单词中任意位置,插入任意一个字母后,在字典中查找是否正确,正确则输出 void InsertLetter( const string& word, Dictionary& dict ) { vector vecWord; // 存放插入单词字母后,正确单词的数组,用于避免有重复的正确单词输出 string strWord; string strAlpha = "abcdefghigklmnopqrstuvwxyz"; // 26个小写字母 for( int nPos = 0; nPos < word.length(); ++nPos ) { // 单词中逐次在每个位置中插入26个字母中一个后,判断是否正确单词 for( int nAlpha = 0; nAlpha < strAlpha.length(); ++nAlpha ) { // 恢复原始单词值 strWord = word; // 从单词strWord中nPos位置开始,插入字母串 // strAlpha中的nAlpha位置开始的1个字母 strWord.insert( nPos, strAlpha, nAlpha, 1 ); // 字典中查找,找到输出 if( dict.search( strWord ) ) { // 在前一次正确单词的数组中查找,如果存在的话,不再输出和压入到数组 vector::iterator Iter = vecWord.begin(); for( ; ...
如何用c++读取word文档
展开全部 基本步骤(1)创建)一个 MFC 的程序工程。
注意:在VC中对WORD进行操作需要在MFC AppWizard - Step 2 of4中的Automaiton选项上打上勾。
(2)Ctrl+W 执行 ClassWizard(本文按照 VC6 操作,示例程序是在VC6 下编写测试的)。
(3)Add Class...\From a type Library... 在 Office目录中,找到想使用的类型库。
(我使用的是 Office2003,其Word 的类型库文件,保存在 E:\ProgramFiles\Microsoft Office\Office12\MSWOR.OLB)。
(4)选择类型库文件后,在弹出的对话窗中继续选择要添加的类。
具体选择什么类,要看你将来在程序中打算调用什么功能。
当然,也可以不用考虑这么多,用鼠标和Shift键配合,全部选择也可以。
(5)初始化COM。
方法一,找到App的InitInstance()函数,在其中添加AfxOleInit()函数的调用;方法二,在需要调用COM功能的地方 CoInitialize(NULL),调用完毕后CoUninitialize()。
(6)在你需要调用 Office 功能函数的 cpp 文件中 #include //为了方便操作 VARIANT 类型变量,使用 CComVariant 模板类 #include "文件名.h" //具体的头文件名,是由装载类型库的文件名决定的,如MSWORD。
示例程序: //word应用程序 _Application app; //初始化连接 app.CreateDispatch("word.Application"); Documents doc; CComVarianta(_T(strWord)),b(false),c(0),d(true),aa(0),bb(1); _Document doc1; doc.AttachDispatch(app.GetDocuments()); doc1.AttachDispatch(doc.Add(&a,&b,&c,&d)); Range range; //求出文档的所选区域 range=doc1.GetContent();//取出文件内容 str=range.GetText(); m_richedit.SetWindowText(str); //关闭 app.Quit(&b,&c,&c); //释放环境 app.ReleaseDispatch();
C++文件读取为什么最后一个会显示两次,详细求解。
源代码如下。
问题出在while(!in.eof()),eof判断文件末尾是靠in>>读取文件移动文件指针来进行的假设文件中有abc这3个字符,当前读出了c,按正常理解文件已经到达末尾,但是eof判断不出来,所以再次执行了循环,但本次读取是失败的,ch中仍保存着上次读出的字符c,进行输出,再次判断eof,这次它判断出是文件末尾,退出循环改法在in>>ch;后加if(!in.eof())break;就是说,读完再判一遍...
mfc往word文件末里面写字符串,写不进去,txt文件写的进去,代码那...
楼上说的没错。
word文件(.doc/.doxc)不是文本格式文件,不能对文件进行内容的直接追加写入,这样的写入,要么破坏了文件,要么写入的内容会被忽略。
要想管理word文件的内容,无论哪种文件直接写的方式都不行,包括CFile,CStdioFile和fopen等形式都不可用。
必须使用OLE接口对文件进行管理和操作,也就是通过office组件进行管理。
百度”OLE word文件“有很多详细的讲解文章,这里就不赘述了。
C++读取csv文件求代码
展开全部 #include "stdafx.h"#include #include #include using namespace std;int main(int argc, char* argv[]){ ifstream file ( "D:\\test.csv" ); // declare file stream: http://www.cplusplus.com/reference/iostream/ifstream/ string value; while ( file.good() ) { getline ( file, value, ',' ); // read a string until next comma: http://www.cplusplus.com/reference/string/getline/ cout << string( value, 0, value.length() )<<","; // display value removing the first and the last character from it }}读取CSV文件C#C# 读取CSV文件2009年06月25日 星期四 19:03方法一,纯文本方法,即把该文件当做文本文件读取int intColCount = 0; bool blnFlag = true; DataTable mydt = new DataTable("myTableName");DataColumn mydc; DataRow mydr;string strpath = ""; //cvs文件路径string strline; string [] aryline;System.IO.StreamReader mysr = new System.IO.StreamReader(strpath);while((strline = mysr.ReadLine()) != null) { aryline = strline.Split(new char[]{','});if (blnFlag) { blnFlag = false; intColCount = aryline.Length; for (int i = 0; i < aryline.Length; i++) { mydc = new DataColumn(aryline[i]); mydt.Columns.Add(mydc); } }mydr = mydt.NewRow(); for (int i = 0; i < intColCount; i++) { mydr[i] = aryline[i]; } mydt.Rows.Add(mydr); } mydt.Rows.RemoveAt(0); dataGridView1.DataSource = mydt.DefaultView; dataGridView1.Columns[0].HeaderText = "编号";方法二、当做一个数据源读取,常用的sql语句都能执行的using (OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\csv\;Extended Properties='Text;'")) { DataTable dtTable = new DataTable(); OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [Test.csv]", conn); try { adapter.Fill(dtTable); } catch (Exception ex) { dtTable = new DataTable(); } this.GridView1.DataSource = dtTable; this.GridView1.DataBind(); }
如何在word中插入好看的C/C++代码
用CDIB类,图像设备无关类。
这是里边载入bmp图片的函数,加了这个类后直接调用就行。
网上有很多例子,去pudn吧,那里有很多int CDIB::LoadBmp(LPCSTR filename){//打开文件CFile file(filename,CFile::modeRead|CFile::shareDenyNone);WORD bfType;DWORDbfSize;//读入文件头file.Read(&bfType,sizeof(WORD));file.Read(&bfSize,sizeof(DWORD));if(bfSize {file.Close();return -1;}//是否Bmp文件if (bfType != (((WORD)'M'{file.Close();return -1;}DWORDbfOffBits;//找到位图数据起始偏移并读入file.Seek(2*sizeof(WORD),CFile::current);file.Read(&bfOffBits,sizeof(DWORD));LPVOID DibBuf;DibBuf = (LPVOID)new char[bfSize];if(DibBuf == NULL){file.Close();return -1;}//读入位图数据file.ReadHuge(DibBuf,bfSize);file.Close();LPBITMAPINFO pBMI;int size = bfOffBits - 14;pBMI = (LPBITMAPINFO)new char[sizeof(BITMAPINFOHEADER)+256*sizeof(RGBQUAD)];//生成信息头memcpy(pBMI,DibBuf,size);LPVOID lpBits = (LPVOID)((LPSTR)DibBuf + size);//创建位图CreateDIBIndirect(pBMI, lpBits);delete pBMI;delete DibBuf;return 1;}
转载请注明出处51数据库 » mfc读取word 源码
就是这么骚_