


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C#處理文本文件作者:未知 時間:2 0 0 5 -08 07 2 1:1 2出處:編程愛好者網(wǎng)站 責(zé)編:My FAQ摘要:C#處理文本文件文本文件是一種常用的文件格式,所以如何處理文本 文件也就成為編程的一個重點(diǎn)。本文就來探討一下用 C#是如何來處理文本 文件。其內(nèi)容重點(diǎn)就是如何讀取文本 文件內(nèi)容、如何改變文本 文件的內(nèi)容,以及如何用C #來實(shí)現(xiàn)對讀取后的文本 文件的打印預(yù)覽和打印。?一.本文程序設(shè)計(jì)和運(yùn)行的軟件環(huán)境:(1 ),微軟公司視窗2 0 00服務(wù)器版(2) .Net FrameWo r k S DK Be t a 2 ?二.C#處理文本文件的一些重要環(huán)節(jié):1(?).如何讀取文本 文
2、件 內(nèi)容:在本文介紹的 程序中,是把讀取的文本 文件,用一個ric h Tex t B o x組件顯示出來。要讀取文本 文件,必須使用到"St reamReade r" 類,這個類是由名字空間"Sys tem. IO"中定義的。通過"Stream Reader "類的"Read Line ()"方法,就可以讀取打開數(shù)據(jù)流當(dāng)前 行的數(shù)據(jù)了。下面代碼實(shí)現(xiàn)的功能就是讀取"C:"并在richTex t Box1組件中顯示出來:? fs = new ( "C:",);Str e a m
3、 Reader m_streamR eader = new StreamReader ( fs );使用 Stre a mRead e r 類來讀取文件? m_streamReade r .Base S tream.S e e k ( 0 , SeekO ri g in.Begin );/從數(shù)據(jù)流中讀取每一行,直到 文件的最后一行,并在ri c hT e xtB o x1中顯示出內(nèi)容t h i s.r i chTex t Box1.Text = "" ; ? s tring s t rLine = m_strea mReader. ReadLine ();while ( s
4、trLine ! = null ) ?this.richTex t Bo x 1 .Te x t + = s t r Lin n "s trLi n e = m_streamRe a der. ReadLi n e ();關(guān)閉此 Strea m R eader 對象?ms tr e amRead e r.C 1 os e ();?(2).如何改變文本文件中數(shù)據(jù)內(nèi)容:在本文介紹的 程序中,改變文本 文件數(shù)據(jù)內(nèi)容的功能是通過改變rich Te xtB o x1中的內(nèi)容來實(shí)現(xiàn)的,當(dāng)ri chT e x t Box1這的內(nèi)容改變后,按動"另存為",就把r ichTextB
5、ox 1中內(nèi)容存儲到指定的文本 文件中了。要想改變文本 文件內(nèi)容,要使用到"S t re a mW r i ter”類, 這個類和"S t re a mR e a d e r "一樣,都是由"Syst e m. IO"名字空間來定義的。通過 "Stre a mWriter"類的"W r ite ()"方法,就可 以輕松實(shí)現(xiàn)文本 文件內(nèi)容的更改了。下面代碼的功能是:如果"C"盤存在"",則把richTextBox1中的內(nèi)容寫入到""中,如果不存在,
6、則創(chuàng)建此文件,然后在寫入文本數(shù)據(jù)。?創(chuàng)建一個 文件流,用以寫入或者創(chuàng)建一個StreamWriter? f",);Strea mW riter m_ stre am Wri t er = new St r e a mWriter ( fs ) ; ? m_str e a mWriter.Flush ();/ 使用 Strea m Writ e r 來往文件 中寫入內(nèi)容? m_s t rea mWri t er.BaseStrea m . Seek ( 0 , S eek O ri g in. B e gin );?/ 把 ri c h TextBox1 中的內(nèi)容寫入 文件? m _ s
7、 t re a m Wr i ter.Write ( r i c hT e x tBox1 . Tex t ); ? 關(guān)閉止匕文件? m_strea m Write r .Fl u sh ();m_ stre amWriter.Cl o se ( ) ;?從上面這二個代碼可以,寫入數(shù)據(jù)比起讀取數(shù)據(jù)要顯得容易些。? (3).如何實(shí)現(xiàn)打印預(yù)覽:?打印預(yù)覽是通過打印預(yù)覽對話框來實(shí)現(xiàn)的,實(shí)現(xiàn)對讀取得文本文件的打印預(yù)覽,最為重要的就是要通知打印預(yù)覽對話框所要預(yù)覽的文件的內(nèi)容。下面代碼就是把r 1 chText B ox 1中顯示的內(nèi)容,通過打印預(yù)覽對話框顯示出來:?s tr i ng st rText
8、= r ichTe x t Bo x I.Text ; ? StringR e ader myRea der=n ewSt r ingReader ( strTe x t ) ;? Prin t PreviewDia log print PreviewDi a lo g 1 = n ew P ri ntPreviewDialo g();pr i n tP re vi e wDi a logl.Doc u ment = Th ePrintDoc um e nt ;print PreviewDi a lo g 1. For m Bor d e rS t y 1 e =FormBo r d e rS
9、 t yle.F ixed3D;p rint P re v ie w D i a 1 ogl.Sh o w Di a log ();? (4).如何打印文件:?在名字空間"System . Drawing.Pri n t ing"中定義了一個類"PrintD ocume n t ",通過調(diào)用此類的"Prin t "方法就可以觸發(fā)在此名字空間 中封裝的另外一個事件"PrintPa ge" o在此事件中設(shè)定要打印的文檔內(nèi)容,從而實(shí)現(xiàn)隊(duì)文本文件的打印操作。下面代碼是調(diào)用"P rintDo c ume n t &
10、quot;的"Prin t "方法,和調(diào)用事件"PrintPage"來打印ric h Text B oxi中的內(nèi)容: ?ThePr i ntDo c u m en t .Pr i nt (); 其中 T h ePrintD o c u m ent 是"Print Doc umen t ”類的一個對象 ?下列代碼是設(shè)定打印內(nèi)容即打印richTe x t B ox 1中的內(nèi)容:? fl oat lin e sPerPage = 0;?f 1 o at yPosition = 0 ;int count = 0; ?f 1 oa t leftMarg
11、i n = ev.Marg i nB o und s .Le f t ;?f loat t o pM a r g in = ev.Marg i n B o unds . To p ;s tri ng line = null ; ?F ont printF o n t = ric hTextBoxl. F ont ;SolidBrush m yBrus h = new SolidBru s h ( C olor. B lack ) ; ?/ 計(jì)算每一頁打印多少行 ? lin esPerPag e = ev. Margin B ounds.He i g h t / prin t F o n t.G
12、etHeig h t ( ev.Gr a p h i c s ) ; ?/ /重復(fù)使用 S tri n g R e a de r 對象,打印出rich TextBoxl中的所有內(nèi)容w hile ( c ou nt < linesPerPage & & ( ( 1 i ne = myReader. Rea dL i ne ( ) != n u ll ) ?/計(jì)算出要打印的下一行所基于頁面的位置y P osition = topMargin 十 (cou n t * p r intFo n t . GetHe i ght ( ev.Graph i c s ) ) ; ? /
13、打印出 richTextBoxl 中的下 一行內(nèi)容? ev.Grap h ics.D r a wSt r ing( 1 ine , pri n t F ont , m y B r ush , 1 ef t Margin , yPosition , n ew St ri ngFormat ( ) );co u nt+ ; ?/判斷如果還要下一頁,則繼續(xù)打印?if ( line ! = n u ll )e v . HasMo r ePage s = true ;e 1 seev . HasMore P a ges = false ; ?myBr ush. Dispos e ();?注釋:由于在上述
14、的代碼中省掉了這些類所對于地名字空間,所以要想成功的編譯和運(yùn)行上述代碼,就要在程序頭部要導(dǎo)入所使用的名字空間。三.用C #處理文本 文件的完整源 程序代碼(c ontrol.cs): ?掌握了上面這些關(guān)鍵步驟,就可以方便的得到用C #來處理文本文件的一個完整的源程序,具體如下:? usi n g S yste m ;? us ing Syst em.Dra wing ;? u sing Sy s t em.C o l 1 e ctions ;using Syste m .C omponentModel ; ? using System. W indow s . F orms ; ? using
15、 Sys t em.Data ; ? using S y st e m.IO ;usi n g Sy s t e m.Drawing.P r i nti n g ;public cl ass For m 1 : F orm ?pri v a te R i c h T ext B ox rich TextBoxl ;? pri v ate Button buttoni ;? private Button b u tt on2 ; ? private Butto n button3 ;p r i va t e B u t ton b u tton 4 ;pri v at e Button but
16、ton5 ;p rivate Op e n o p en ;pr i v a te Save save ; ? private PrintD i a 1 og p r intD ial o g 1 ;pr i v a te Prin t Docu m e nt Th ePri n t Doc u ment ;p rivate PrintP r evi e wD i alo g p r i nt P r eview D i a logl ; priv ate StringRea d e r m yR e ade r ;p r iva t e Sy s te m .Co m po n entMod
17、e 1 .Con t ain e r compone n ts = null ; ?public Form1 ( ) ? ? 初始化窗體中的各個組件 In i t i a lizeCompone n t () ;/清除程序中使用多的資源? p r otecte d overr i de voi d Di s pose ( boo 1 disposing )i f ( disposing )? if ( c o mpo n ents != null )c omponents.Disp o s e ();base.D i s p o se ( dispos i n g ) ; ? p r iva
18、t e void Initi a lizeComponen t ()? richTex t Box 1 = new Ric h TextBox ();butto nl = new Butt on ( ) ;? button2 = n ew Button ( ) ;? buttons = new Button ( ) ;? button 4 = n ew B u tton ( ) ; ? but t o n5 = new Bu t ton ( );?save = n ew Sa v e ();open=new Op e n ( ); ?pri ntPr e v i ewDi a 1 og 1 =
19、 new PrintPre v iewDialog( ) ; ?printDialogl =n ew P rintDialo g ( ); ? T h eP rintD ocume n t = new Print Doc ument ( ) ; ?TheP rin tDocumen t.Prin tPage+ = newPrint Page E v entHa n dle r ( ThePr intD o cument _ Pr i ntPage );Sus pend L ayout() ;?r i chTextBoxl. Anchor = Anchorstyles.None ; ? rich
20、Text Boxl.Name="richTex tBox1 "rich T e x t Box 1 .Siz e = new Size ( 4 48 , 2 8 0 );r i chT e x t B o x1 . TabInd e x = 0 ; ? ric h Te x tBoxl.T e xt = " 11 ;but t o n 1 . An chor = Anchor S tyles.None ; ? butt o nl.Location = new Point ( 41 , 289 );bu t t o nl.N a m e=" b utton
21、1 11;butt on1 . Size =new Size ( 48,30 );?button1.Ta blnd ex= 1;button1 . Text ="打開";butto n 1.C 1 i c k +=new Sys t em.Ev entHand1er(but ton1 _Click); ?butt o n 2.Anchor = Anch o rStyles.N one ;? bu tto n 2. Loc a t i on=new Point (274, 288);b u tt o n2.Name = "button2"bu t ton2.S i ze = n ew Size ( 4 8 , 30 );butto n 2.Ta b Index = 4 ;b utt o n 2. Tex t ="預(yù)覽"? butt o n2.Click += new Sys
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 廠屋租賃合同范本
- 南川家電運(yùn)輸合同范本
- 公益性中藥課題申報書
- 一年級上冊語文《陽光》教案
- 縣城舞蹈室轉(zhuǎn)租合同范例
- 發(fā)改委ppp合同范本
- 卡車維修合同范本
- 《語文園地二》語文教案
- 《識字7》教案六篇
- 出售塔吊電梯合同范本
- 人教版一年級下冊數(shù)學(xué)十幾減9算理的練習(xí)
- QC成果構(gòu)造柱澆筑新技術(shù)的研發(fā)創(chuàng)新(附圖)
- qbq問題背后的問題
- 流體輸送實(shí)訓(xùn)裝置操作規(guī)程
- extreme-sports 極限運(yùn)動 英文 ppt
- 國際注冊建造師與項(xiàng)目管理師雙資格認(rèn)證
- 面癱護(hù)理查房
- 精品資料(2021-2022年收藏)建筑立面裝飾設(shè)計(jì)技術(shù)導(dǎo)則
- 倉庫管理警示標(biāo)語
- ISO9001質(zhì)量管理體系目錄結(jié)構(gòu)
- 5米對數(shù)視力表及E尺寸標(biāo)準(zhǔn)A4
評論
0/150
提交評論