




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、計(jì)算機(jī)學(xué)院 高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告學(xué)號(hào)2014-2015學(xué)年 第2學(xué)期1408010126高級(jí)語(yǔ)言程序設(shè)計(jì)課程設(shè)計(jì)報(bào)告題目:文本編輯器的設(shè)計(jì)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):14計(jì)科一班姓名:彭鑫指導(dǎo)教師:王峻成績(jī):計(jì)算機(jī)學(xué)院2015年4月24日 目 錄1 設(shè)計(jì)內(nèi)容及要求21.1設(shè)計(jì)內(nèi)容21.2具體要求22 概要設(shè)計(jì)22.1系統(tǒng)的功能簡(jiǎn)介22.2系統(tǒng)功能模塊圖32.3各個(gè)模塊之間的主要關(guān)系33 詳細(xì)設(shè)計(jì)4 3.1文件操作4 3.2編輯操作9 3.3工具操作17 4 程序運(yùn)行結(jié)果與調(diào)試19 4.1 在調(diào)試過程中出現(xiàn)的一些問題19 4.2 實(shí)驗(yàn)結(jié)果205 課程設(shè)計(jì)總結(jié)與感想24 參考文獻(xiàn)24源代碼
2、251 設(shè)計(jì)內(nèi)容及要求1.1設(shè)計(jì)內(nèi)容該文本編輯器運(yùn)行后彈出文本編輯器的主界面,由鍵盤輸入或以打開的方式輸入或顯示文本文件內(nèi)容。其中程序的編輯項(xiàng)可對(duì)當(dāng)前的文本進(jìn)行撤銷、刪除、剪切、復(fù)制、粘貼、在文本里顯示當(dāng)前時(shí)間、全選、清除、查找、替換、統(tǒng)計(jì)等功能。程序的文件項(xiàng)可以對(duì)電腦上txt,c+等格式文件的打開、對(duì)當(dāng)前文本的保存和另存、對(duì)當(dāng)前文本的的新建以及退出文本編輯系統(tǒng)。程序的工具項(xiàng)為背景音樂,為用戶提供了優(yōu)美動(dòng)聽的音樂,僅在用戶編輯疲憊乏力的時(shí)候盡情的享用。最后在程序的幫助項(xiàng)有對(duì)該小型文本編輯器的關(guān)于,用來介紹該程序,還有訪問鏈接百度,訪問114網(wǎng)頁(yè)大全,為用戶提供查找資料等功能服務(wù)。1.2具體要求
3、基本要求:編輯器應(yīng)具備對(duì)文本文件的打開、保存、新建、查找、插人、刪除、修改、字符串替換、統(tǒng)計(jì)字?jǐn)?shù),統(tǒng)計(jì)行數(shù)等功能,對(duì)于超過一屏的長(zhǎng)文件,應(yīng)能夠分頁(yè)顯示。設(shè)計(jì)用戶接口命令,實(shí)現(xiàn)對(duì)文本的編輯2 概要設(shè)計(jì)2.1系統(tǒng)的功能簡(jiǎn)介 輸入一頁(yè)文字,程序?qū)崿F(xiàn)文字、數(shù)字、空格的統(tǒng)計(jì);可以刪除一行信息;查找定位單詞;定行位置插入;文件存盤;裝入文件;并能顯示輸入及其他功能。2.2系統(tǒng)功能模塊圖文本編輯器文件編輯工具幫助新建 打開保存另存退出復(fù)制粘貼剪切清空刪除清空撤銷查找替換統(tǒng)計(jì)全選背景音樂關(guān)于連接百度連接114運(yùn)行所需環(huán)境:win7及以下各版本windows,visual C+6.0。2.3各個(gè)模塊之間的主要關(guān)
4、系該系統(tǒng)的功能主要是實(shí)現(xiàn)文本的輸入,并對(duì)文本的相應(yīng)信息進(jìn)行的操作。各個(gè)模塊之間的關(guān)系是相互聯(lián)系的。首先,主函數(shù)包含了所有的子函數(shù)。主函數(shù)是整個(gè)系統(tǒng)的核心。子函數(shù)之間也是有聯(lián)系的,對(duì)文本信息的顯示、刪除、統(tǒng)計(jì)、查找、插入,存儲(chǔ),裝入,必須是在文本信息輸入的情況下進(jìn)行的。因此對(duì)文本的輸入是非常重要的。在文本的刪除、統(tǒng)計(jì)、查找、插入、存儲(chǔ)、裝入、保存所有的子函數(shù)之間是沒有多大聯(lián)系的。3 詳細(xì)設(shè)計(jì)3.1文件操作(1)文件的新建的實(shí)現(xiàn):int ret=MessageBox(NULL,TEXT("是否把更改保存到新建的文本文檔!"),TEXT("溫馨提示"),MB_
5、YESNO | MB_ICONQUESTION); if(ret=IDYES) /根據(jù)選擇如果保存 OPENFILENAME ofn; /文件對(duì)象 char szFileMAX_PATH; /文件的大小,最大 ZeroMemory(&ofn,sizeof(ofn); /文件的初始化 ofn.lStructSize = sizeof(ofn); ofn.lpstrFile = szFile; ofn.lpstrFile0 = TEXT('0'); ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = TEXT("ALL
6、0*.*0Text0*.TXT0C+0*.cpp0"); /保存的文件類型 ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.hwndOwner = hwnd; ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; ofn.lpstrTitle=TEXT("保存"); if (GetSaveFileName(&ofn) FIL
7、E *fp; fp=fopen(szFile,"w"); /打開文件 if(fp=NULL) MessageBox(NULL,TEXT("文件無法保存"),TEXT("嗚嗚"),MB_OK); TCHAR str10000; TCHAR end10000; memset(end,0,10000); GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str); fputs(str,fp); fclose(fp); SetDlgItemText(hwnd,IDC_EDIT1,""); e
8、lse SetDlgItemText(hwnd,IDC_EDIT1,""); (2)文件打開的實(shí)現(xiàn):case ID_MENUITEMOPEN: /文本的打開OPENFILENAME ofn;char szFileMAX_PATH; /保存路徑變量ZeroMemory(&ofn,sizeof(ofn);在這里我們使用ZeroMemory“函數(shù)”,ZeroMemory其實(shí)并不是函數(shù),看一下ZeroMemory的定義:ofn.lStructSize = sizeof(ofn);ofn.lpstrFile = szFile; /szFile是一個(gè)字符數(shù)組,那么szFile這
9、個(gè)名字就代表這個(gè)字符數(shù)組的首地址這是一個(gè)指針的應(yīng)用,把接收選擇文件名的數(shù)組的地址傳遞到GetOpenFileName函數(shù)中。 ofn.lpstrFile0 = TEXT('0');ofn.lpstrFile0 = TEXT('0');效果等價(jià)于ZeroMemory(szFile,sizeof(szFile)/sizeof(char);ofn.nMaxFile = sizeof(szFile);ofn.lpstrFilter = TEXT("ALL0*.*0Text0*.txt0");文件過濾器*.*就表示所有文件*.txt就表示所有文本文件a
10、bc*.*就表示所有以abc開頭的文件abc*.txt就表示所有以abc開頭的文本文件(txt) ofn.lpstrFilter = TEXT("ALL0*.*0Text0*.TXT0");用“0”分割出幾個(gè)段,每?jī)啥问且唤M過濾器,每組的第一個(gè)段代表過濾器的顯示的值,而第二段表示真正的過濾器 ofn.nFilterIndex = 1; /選擇一個(gè)過濾器ofn.lpstrFileTitle = NULL;windows的一個(gè)慣例:結(jié)構(gòu)體的指針類型別名一般是LP+結(jié)構(gòu)體的名字GetOpenFileName(&ofn)而不是GetOpenFileName(ofn),因?yàn)镚
11、etOpenFileName函數(shù)要的是OPENFILENAME的指針(8)只要用戶還沒關(guān)閉對(duì)話框,那么GetOpenFileName函數(shù)是停住的,同步模式的PlaySound以及getchar、scanf是一樣的。用戶關(guān)閉對(duì)話框,GetOpenFileName函數(shù)返回,返回值是BOOL,等于TRUE表示用戶選擇了文件,如果等于FALSE就表示用戶選擇了【取消】按鈕ofn.nMaxFileTitle = 0;ofn.lpstrInitialDir = NULL;ofn.hwndOwner = hwnd;ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | O
12、FN_FILEMUSTEXIST;if(GetOpenFileName(&ofn) FILE *fp;fp=fopen(szFile,"r");if(fp=NULL)MessageBox(NULL,TEXT("文件打開錯(cuò)誤!"),TEXT("記事本"),MB_OK);TCHAR line256;TCHAR end10000;memset(line,0,256);memset(end,0,256);while(!feof(fp)fgets(line,sizeof(line),fp);lstrcat(end,line);int w
13、=strlen(end);endw-1='0'lstrcat(end,"rn");SetDlgItemText(hwnd,IDC_RICHEDIT1,end);fclose(fp); /關(guān)閉文件break;break;(3)文件保存的實(shí)現(xiàn):case ID_MENUITEMSAVE: /文本的保存OPENFILENAME ofnb;char bcFileMAX_PATH;ZeroMemory(&ofnb,sizeof(ofnb);ofnb.lStructSize = sizeof(ofnb);ofnb.lpstrFile = bcFile;ofnb.l
14、pstrFile0 = TEXT('0');ofnb.nMaxFile = sizeof(bcFile);ofnb.lpstrFilter = TEXT("ALL0*.*0Text0*.txt0");ofnb.nFilterIndex = 1;ofnb.lpstrFileTitle = NULL;ofnb.nMaxFileTitle = 0;ofnb.lpstrInitialDir = NULL;ofnb.hwndOwner = hwnd;ofnb.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTE
15、XIST|OFN_OVERWRITEPROMPT;if (GetSaveFileName(&ofnb)FILE * fp = fopen (".txt","w"); /保存所有文件都為txt格式TCHAR baoc 100000; /保存的最大容量為100000GetDlgItemText(hwnd,IDC_RICHEDIT1,baoc,sizeof(baoc);fputs(baoc,fp);fclose(fp);break;(4)退出文本編輯器的實(shí)現(xiàn):int ret=MessageBox(NULL,TEXT("是否把更改保存到新建的文
16、本文檔!"),TEXT("溫馨提示"),MB_YESNO | MB_ICONQUESTION);if(ret=IDYES)OPENFILENAME ofn;char szFileMAX_PATH;ZeroMemory(&ofn,sizeof(ofn);ofn.lStructSize = sizeof(ofn);ofn.lpstrFile = szFile;ofn.lpstrFile0 = TEXT('0');ofn.nMaxFile = sizeof(szFile);ofn.lpstrFilter = TEXT("ALL0*.*0
17、Text0*.TXT0C+0*.cpp0");ofn.nFilterIndex = 1;ofn.lpstrFileTitle = NULL;ofn.nMaxFileTitle = 0;ofn.lpstrInitialDir = NULL;ofn.hwndOwner = hwnd;ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;ofn.lpstrTitle=TEXT("保存");if (GetSaveFileName(&ofn) FILE *fp;fp=fopen(szFile,
18、"w");if(fp=NULL)MessageBox(NULL,TEXT("文件無法保存"),TEXT("嗚嗚"),MB_OK);TCHAR str10000;TCHAR end10000;memset(end,0,10000);GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str);fputs(str,fp);fclose(fp);MessageBox(NULL,TEXT("文件保存成功!放心關(guān)閉!"),TEXT("嘻嘻"),MB_OK); EndDialo
19、g(hwnd, 0);3.2編輯操作:(1)剪切的實(shí)現(xiàn):case ID_MENUITEMCUT: /剪切SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_CUT,0,0); /傳遞對(duì)話框中的內(nèi)容首先獲取RichEdit中的內(nèi)容,WM_CUT,傳遞要進(jìn)行操作的內(nèi)容,0,0為兩個(gè)WPARAM和LPARAM是約定的消息參數(shù)類型。break;(2)復(fù)制的實(shí)現(xiàn):case ID_MENUITEMCOPY: /復(fù)制SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_COPY,0,0);/傳遞對(duì)話框中的內(nèi)容首先獲取RichEdit中的內(nèi)容,WM_C
20、OPY,傳遞要進(jìn)行操作的內(nèi)容,0,0為兩個(gè)WPARAM和LPARAM是約定的消息參數(shù)類型。break;(3)粘貼的實(shí)現(xiàn): case ID_MENUITEMPASTE: /粘貼 SendDlgItemMessage(hwnd,IDC_RICHEDIT1,WM_PASTE,0,0); break; (4)清除的實(shí)現(xiàn): case ID_MENUITEMEMPTY: /清除 SetDlgItemText(hwnd,IDC_RICHEDIT1,""); break; (5)撤銷的實(shí)現(xiàn): case ID_MENUITEMUNDO: /“撤銷”菜單 SendDlgItemMessage(
21、hwnd,IDC_RICHEDIT1, EM_UNDO, 0, 0); break; (6)刪除的實(shí)現(xiàn): case ID_MENUITEMDELETE: /刪除 SendMessage(GetDlgItem(hwnd, IDC_RICHEDIT1), WM_CLEAR, 0, 0); break;(7)全選的實(shí)現(xiàn): case ID_MENUITEMSELECTALL: /全選 SendMessage(GetDlgItem(hwnd, IDC_RICHEDIT1), EM_SETSEL, 0, -1); break;(8)系統(tǒng)時(shí)間的實(shí)現(xiàn):VOID CALLBACK MyTimerFun(HWND
22、 hwnd, UINT message, UINT iTimerID, DWORD dwTime) SYSTEMTIME strLocal; /當(dāng)前時(shí)間GetLocalTime(&strLocal);TCHAR str256;wsprintf(str,"%04d-%02d-%02d %02d:%02d:%02d",strLocal.wYear,strLocal.wMonth,strLocal.wDay,strLocal.wHour,strLocal.wMinute,strLocal.wSecond);SetDlgItemText(hwnd,IDC_EDIT2,str
23、);(9)查找功能的實(shí)現(xiàn): int count=0; int Line_count=1; int Row_count=1; int num=0; int flag=0; TCHAR str1256; TCHAR temp15000; TCHAR temp25000; memset(temp1,0,5000); memset(temp2,0,5000); memset(str1,0,256); GetDlgItemText(hwnd,IDC_EDIT_FINDWORD,str1,sizeof(str1); if(strlen(str1)=0) MessageBox(NULL,TEXT("
24、;查找的內(nèi)容為空,請(qǐng)輸入內(nèi)容后再查找!"),TEXT("嗚嗚"),MB_OK); else int i=0; int j=0; while(str2i!='0' ) if(str2i='n') | (Row_count=63) Line_count+; Row_count=0; if(str2i=str1j) i+; j+; Row_count+; if(str1j='0') j=0; count+; wsprintf(temp2,"<%i>你要尋找的內(nèi)容在第:%i 行,第:%i 列至第:%i
25、列!",count,Line_count,(Row_count-strlen(str1),(Row_count-1); strcat(temp1,temp2); strcat(temp1,"rn"); flag=1; else i=i-j+1; j=0; Row_count+; if(str2i='0' && flag=1) SetDlgItemText(hwnd,IDC_EDIT2,temp1); MessageBox(NULL,temp1,TEXT("嘿嘿"),MB_OK); if(str2i='0&
26、#39; && flag=0) MessageBox(NULL,TEXT("沒有你想要找的內(nèi)容,請(qǐng)重新輸入查找的內(nèi)容"),TEXT("嗚嗚"),MB_OK); break; break;通過簡(jiǎn)單的字符串比配算法實(shí)現(xiàn)其功能。(10)替換功能的實(shí)現(xiàn):TCHAR *change:D_change(TCHAR S, TCHAR T1 ,TCHAR T2) /替換功能的主算法int i=0;int j=0;int k=0;int l=0;TCHAR *S1;while(Si!='0')if(Si=T1j)i+;j+;count1=i
27、;elsei=i-j+1;j=0;count1=i;if(T1j='0')i=i-j;if(strlen(T1)=strlen(T2)int num1=strlen(T1);for(k=i;k<i+num1;k+) Sk=T2l; l+;j=0;l=0;else if(strlen(T1)>strlen(T2)int num2=strlen(T1)-strlen(T2);int lengthT2=strlen(T2);for(k=i;k<strlen(S)-num2;k+)Sk=Sk+num2; for(k=(strlen(S)-num2);k<=str
28、len(S);k+)Sk='0' for(k=i;k<(i+lengthT2);k+) Sk=T2l; l+;j=0;l=0;else if(strlen(T1)<strlen(T2)int num3=strlen(T2)-strlen(T1);S1=new TCHARstrlen(S)+num3;for(int k=0;k<i;k+)S1k=Sk;for(int k2=i;k2<strlen(T2)+i;k2+)S1k2=T2k2-i;for(int k3=i+strlen(T1);k3<strlen(S);k3+)S1k3+num3=Sk3;S
29、1k3+num3='0'if(Si='0') return S1;elsestrcpy(S,S1);j=0;return S;也通過字符算的比配,一一找到后,一一替換,最后返回替換后的文本內(nèi)容;(11)統(tǒng)計(jì)功能的實(shí)現(xiàn):void Total_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)int Line_count=1;int Row_count=0;int Total_count=0;int English_count=0;int math_count=0;int other_count=0
30、;int space_count=0;int punct_count=0;TCHAR temp1256;TCHAR temp2256;memset(temp1,0,256);memset(temp2,0,256);int i=0;while(total2i!='0')if(total2i!=' ') && (total2i!='r') && (total2i!='n')Total_count+;if(total2i>='a' && total2i<=
31、9;z') | (total2i>='A' && total2i<='Z')English_count+;if(total2i>='0' && total2i<='9')math_count+;if(total2i=33 | total2i=34 | total2i=39 | total2i=44 | total2i=46 | total2i=58 | total2i=59 | total2i=63)punct_count+;if(total2i=' '
32、;)space_count+;if(total2i='n') | (Row_count=62)Line_count+;Row_count=0;elseRow_count+; i+;other_count=Total_count-English_count-math_count-punct_count;wsprintf(temp2,"<1>文本的行數(shù)為:%i !",Line_count-1);strcat(temp1,temp2);strcat(temp1,"rn");memset(temp2,0,256);wsprintf(t
33、emp2,"<2>文本的總字符數(shù)為:%i !",Total_count);strcat(temp1,temp2);strcat(temp1,"rn");memset(temp2,0,256);wsprintf(temp2,"<3>文本的英文字符數(shù)為:%i !",English_count);strcat(temp1,temp2);strcat(temp1,"rn");memset(temp2,0,256);wsprintf(temp2,"<4>文本的數(shù)字字符數(shù)為:%i
34、!",math_count);strcat(temp1,temp2);strcat(temp1,"rn");memset(temp2,0,256);wsprintf(temp2,"<5>文本的空格數(shù)為:%i !",space_count);strcat(temp1,temp2);strcat(temp1,"rn");memset(temp2,0,256);wsprintf(temp2,"<6>文本的標(biāo)點(diǎn)符號(hào)數(shù)為:%i !",punct_count);strcat(temp1,tem
35、p2);strcat(temp1,"rn");memset(temp2,0,256);wsprintf(temp2,"<7>文本的其它字符數(shù)為:%i !",other_count);strcat(temp1,temp2);strcat(temp1,"rn");memset(temp2,0,256);SetDlgItemText(hwnd,IDC_EDIT1,temp1);通過傳參,把文本信息傳到副對(duì)話框中。然后對(duì)文本進(jìn)行各項(xiàng)簡(jiǎn)單的統(tǒng)計(jì)3.3工具操作:(1)北京音樂的實(shí)現(xiàn): case ID_MENU_MUSIC: TCHAR
36、 shortPathMAX_PATH; GetShortPathName("C:Documents and Settingsuser桌面edit鄧紫棋 - 寂寞星球的玫瑰.mp3",shortPath,sizeof(shortPath); /獲取音樂的途徑 TCHAR cmdMAX_PATH+10; wsprintf(cmd,"play %s",shortPath); mciSendString(cmd," ",0,NULL); int ret = MessageBox(NULL,TEXT("你當(dāng)前正在享受音樂!是否要退出&
37、quot;),TEXT("嘻嘻"),MB_YESNO | MB_ICONQUESTION); if(ret=IDYES) MessageBox(NULL,TEXT("還好聽吧!歡迎再欣賞!再見!"),TEXT("嘿嘿"),MB_OK); mciSendString("CLOSE cmd"," ",0,NULL); break; else break; break; 主要是通過mciSendString()API函數(shù)的使用。3.4關(guān)于操作:(1)關(guān)于對(duì)話框的彈出實(shí)現(xiàn):case ID_MENU_AB
38、OUT: HINSTANCE hInstance=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE); DialogBox(hInstance, MAKEINTRESOURCE(IDD_ABOUT), NULL, Main_Proc); break; 用DialogBox()函數(shù)實(shí)現(xiàn)對(duì)話框的彈出。(2)訪問百度實(shí)現(xiàn):case IDM_BAIDU: /訪問百度網(wǎng) ShellExecute(hwnd,TEXT("open"),TEXT(""),NULL,NULL,SW_SHOWNORMAL); break; (3)訪問1
39、14實(shí)現(xiàn):case IDM_GOOGLE:ShellExecute(hwnd,TEXT("open"),TEXT(""),NULL,NULL,SW_SHOWNORMAL);break;都是ShellExecute()函數(shù)的使用。4 程序運(yùn)行結(jié)果與調(diào)試4.1在調(diào)試過程中出現(xiàn)的一些問題(1)輸入語(yǔ)句中沒有加取地址符號(hào)&(2)誤把取地址運(yùn)算符&當(dāng)作邏輯與&&(3)誤把賦值=當(dāng)恒等=(4)條件語(yǔ)句(if)后誤加分號(hào)(5)循環(huán)語(yǔ)句中改變了循環(huán)變量(6)作為輸出結(jié)果的變量沒有賦初值4.2 實(shí)驗(yàn)結(jié)果(1)記事本的主界面(2)編輯器中的操
40、作項(xiàng) (3)編輯器中的編輯項(xiàng) (4)編輯器中的工具項(xiàng)(5)編輯器中的幫助項(xiàng)(6)打開文件測(cè)試(7)查找項(xiàng)測(cè)試(8)替換項(xiàng)測(cè)試(9)替換項(xiàng)測(cè)試5 課程設(shè)計(jì)總結(jié)與感想通過本次課程設(shè)計(jì),我學(xué)到了很多:增強(qiáng)了查閱相關(guān)參考資料的能力;獨(dú)立分析解決問題的能力;創(chuàng)新精神;自己的上機(jī)動(dòng)手的能力;自己對(duì)課程設(shè)計(jì)的理解,得到很多啟示,知道了以后要加強(qiáng)哪一方面,還有哪一方面有用,課程設(shè)計(jì)為我們提供了一個(gè)即動(dòng)手又動(dòng)腦、獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的知識(shí)理論和實(shí)際有機(jī)的結(jié)合起來,鍛煉了我們的分析解決實(shí)際問題的能力。提高離我們適應(yīng)實(shí)際,實(shí)踐編程的能力。參考文獻(xiàn):1 譚浩強(qiáng) c+面向?qū)ο蟪绦蛟O(shè)計(jì) 清華大學(xué)出版社 2 王紅梅、胡
41、明、王濤 數(shù)據(jù)結(jié)構(gòu)(C+版) 清華大學(xué)出版社 3 如鵬網(wǎng) c語(yǔ)言也能看大事 如鵬網(wǎng)源代碼int ret=MessageBox(NULL,TEXT("是否把更改保存到新建的文本文檔!"),TEXT("溫馨提示"),MB_YESNO | MB_ICONQUESTION); if(ret=IDYES) /根據(jù)選擇如果保存 OPENFILENAME ofn; /文件對(duì)象 char szFileMAX_PATH; /文件的大小,最大 ZeroMemory(&ofn,sizeof(ofn); /文件的初始化 ofn.lStructSize = sizeof(
42、ofn); ofn.lpstrFile = szFile; ofn.lpstrFile0 = TEXT('0'); ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = TEXT("ALL0*.*0Text0*.TXT0C+0*.cpp0"); /保存的文件類型 ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.hwndOwner = hwnd; ofn.Fl
43、ags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; ofn.lpstrTitle=TEXT("保存"); if (GetSaveFileName(&ofn) FILE *fp; fp=fopen(szFile,"w"); /打開文件 if(fp=NULL) MessageBox(NULL,TEXT("文件無法保存"),TEXT("嗚嗚"),MB_OK); TCHAR str10000; TCHAR end10000; memset(end,0
44、,10000); GetDlgItemText(hwnd,IDC_EDIT1,str,sizeof(str); fputs(str,fp); fclose(fp); SetDlgItemText(hwnd,IDC_EDIT1,""); else SetDlgItemText(hwnd,IDC_EDIT1,""); case ID_MENUITEMOPEN: /文本的打開OPENFILENAME ofn;char szFileMAX_PATH; /保存路徑變量ZeroMemory(&ofn,sizeof(ofn)ofn.lStructSize =
45、sizeof(ofn);ofn.lpstrFile = szFile; /szFile是一個(gè)字符數(shù)組,那么szFile這個(gè)名字就代表這個(gè)字符數(shù)組的首地址這是一個(gè)指針的應(yīng)用,把接收選擇文件名的數(shù)組的地址傳遞到GetOpenFileName函數(shù)中。 ofn.lpstrFile0 = TEXT('0');ofn.lpstrFile0 = TEXT('0');ofn.nMaxFile = sizeof(szFile);ofn.lpstrFilter = TEXT("ALL0*.*0Text0*.txt0"); ofn.nFilterIndex = 1
46、; /選擇一個(gè)過濾器ofn.lpstrFileTitle = NULL;ofn.nMaxFileTitle = 0;ofn.lpstrInitialDir = NULL;ofn.hwndOwner = hwnd;ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;if(GetOpenFileName(&ofn) FILE *fp;fp=fopen(szFile,"r");if(fp=NULL)MessageBox(NULL,TEXT("文件打開錯(cuò)誤!"),TEXT(&qu
47、ot;記事本"),MB_OK);TCHAR line256;TCHAR end10000;memset(line,0,256);memset(end,0,256);while(!feof(fp)fgets(line,sizeof(line),fp);lstrcat(end,line);int w=strlen(end);endw-1='0'lstrcat(end,"rn");SetDlgItemText(hwnd,IDC_RICHEDIT1,end);fclose(fp); /關(guān)閉文件break;break;case ID_MENUITEMSAVE
48、: /文本的保存OPENFILENAME ofnb;char bcFileMAX_PATH;ZeroMemory(&ofnb,sizeof(ofnb);ofnb.lStructSize = sizeof(ofnb);ofnb.lpstrFile = bcFile;ofnb.lpstrFile0 = TEXT('0');ofnb.nMaxFile = sizeof(bcFile);ofnb.lpstrFilter = TEXT("ALL0*.*0Text0*.txt0");ofnb.nFilterIndex = 1;ofnb.lpstrFileTitl
49、e = NULL;ofnb.nMaxFileTitle = 0;ofnb.lpstrInitialDir = NULL;ofnb.hwndOwner = hwnd;ofnb.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST|OFN_OVERWRITEPROMPT;if (GetSaveFileName(&ofnb)FILE * fp = fopen (".txt","w"); /保存所有文件都為txt格式TCHAR baoc 100000; /保存的最大容量為100000GetDlgItemText(hwnd,IDC_RICHEDIT1,baoc,sizeof(baoc);fputs(baoc,fp);fclose(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 跨境醫(yī)療服務(wù)的特殊物流需求與挑戰(zhàn)
- 足療店服務(wù)流程再造與提高客戶滿意度
- 跨文化下的節(jié)日酒店?duì)I銷策略研究與實(shí)踐
- 金融服務(wù)金融服務(wù)的標(biāo)準(zhǔn)化規(guī)范與監(jiān)管
- 長(zhǎng)尾關(guān)鍵詞在提升品牌影響力中的價(jià)值
- 金融投資中的財(cái)務(wù)分析技巧與策略
- 超聲技術(shù)在醫(yī)療領(lǐng)域的教育價(jià)值挖掘
- 財(cái)務(wù)風(fēng)險(xiǎn)管理與企業(yè)社會(huì)責(zé)任
- 金融科技下的企業(yè)財(cái)務(wù)管理創(chuàng)新
- 專題20 簡(jiǎn)單實(shí)驗(yàn)方案的設(shè)計(jì)與評(píng)價(jià)【考點(diǎn)精講】-中考化學(xué)考點(diǎn)總復(fù)習(xí)(原卷版)
- 可下載打印的公司章程
- 《英語(yǔ)教師職業(yè)技能訓(xùn)練簡(jiǎn)明教程》全冊(cè)配套優(yōu)質(zhì)教學(xué)課件
- 中藥熏洗法課件
- 本特利探頭應(yīng)用
- 城市雕塑藝術(shù)工程工程量計(jì)價(jià)清單定額2022年版
- QMR-110-00員工手部、接觸面等微生物檢驗(yàn)記錄記錄
- 2022年河北醫(yī)科大學(xué)第一醫(yī)院醫(yī)護(hù)人員招聘考試筆試題庫(kù)及答案解析
- 思想道德與法治教案第四章:明確價(jià)值要求踐行價(jià)值準(zhǔn)則
- 外陰及陰道炎癥
- 公安筆錄模板之詢問嫌疑人(書面?zhèn)鲉局伟舶讣?
- A-level項(xiàng)目介紹(課堂PPT)
評(píng)論
0/150
提交評(píng)論