C#處理文字檔案概述
C#處理文字檔案
C#處理文字檔案是一種常用的檔案格式,所以如何處理文字檔案也就成為程式設計的一個重點。本文就來探討一下用C#是如何來處理文字檔案。其內容重點就是如何讀取文字檔案內容、如何改變文字檔案的內容,以及如何用C#來實現對讀取後的文字檔案的列印預覽和列印。
一. C#處理文字檔案的一些重要環節:
(1).如何讀取文字檔案內容:
在本文介紹的程式中,是把讀取的文字檔案,用一個richTextBox元件顯示出來。要讀取文字檔案,必須使用到"StreamReader"類,這個類是由名字空間"System.IO"中定義的。通過"StreamReader"類的"ReadLine ( )"方法,就可以讀取開啟資料流當前行的資料了。下面程式碼實現的功能就是讀取"C:/file.txt"並在richTextBox1元件中顯示出來:
1 FileStream fs = new FileStream ( "C://file.txt" , FileMode.Open , FileAccess.Read ) ;
2 StreamReader m_streamReader = new StreamReader ( fs ) ;
3 //使用StreamReader類來讀取檔案
4 m_streamReader.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
5 // 從資料流中讀取每一行,直到檔案的最後一行,並在richTextBox1中顯示出內容
6 this.richTextBox1.Text = "" ;
7 string strLine = m_streamReader.ReadLine ( ) ;
8 while ( strLine != null )
9 {
10 this.richTextBox1.Text += strLine + "/n" ;
11 strLine = m_streamReader.ReadLine ( ) ;
12 }
13 //關閉此StreamReader物件
14 m_streamReader.Close ( ) ;
(2).如何改變文字檔案中資料內容:
在本文介紹的程式中,改變文字檔案資料內容的功能是通過改變richTextBox1中的內容來實現的,當richTextBox1這的內容改變後,按動"另存為",就把richTextBox1中內容儲存到指定的文字檔案中了。要想改變文字檔案內容,要使用到"StreamWriter"類,這個類和"StreamReader"一樣,都是由"System.IO"名字空間來定義的。通過"StreamWriter"類的"Write ( )"方法,就可以輕鬆實現文字檔案內容的更改了。下面程式碼的功能是:如果"C"盤存在"file.txt",則把richTextBox1中的內容寫入到"file.txt"中,如果不存在,則建立此檔案,然後在寫入文字資料。
15 //建立一個檔案流,用以寫入或者建立一個StreamWriter
16 FileStream fs = new FileStream ( "C//file.txt" ,
FileMode.OpenOrCreate , FileAccess.Write ) ;
17 StreamWriter m_streamWriter = new StreamWriter ( fs ) ;
18 m_streamWriter.Flush ( ) ;
19 // 使用StreamWriter來往檔案中寫入內容
20 m_streamWriter.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
21 // 把richTextBox1中的內容寫入檔案
22 m_streamWriter.Write ( richTextBox1.Text ) ;
23 //關閉此檔案
24 m_streamWriter.Flush ( ) ;
25 m_streamWriter.Close ( ) ;
從上面這二個程式碼可以,寫入資料比起讀取資料要顯得容易些。
(3).如何實現列印預覽:
列印預覽是通過列印預覽對話方塊來實現的,實現對讀取得文字檔案的列印預覽,最為重要的就是要通知列印預覽對話方塊所要預覽的檔案的內容。下面程式碼就是把richTextBox1中顯示的內容,通過列印預覽對話方塊顯示出來:
26 string strText = richTextBox1.Text ;
27 StringReader myReader = new StringReader ( strText ) ;
28 PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ;
29 printPreviewDialog1.Document = ThePrintDocument ;
30 printPreviewDialog1.FormBorderStyle = FormBorderStyle.Fixed3D ;
31 printPreviewDialog1.ShowDialog ( ) ;
(4).如何列印檔案:
在名字空間"System.Drawing.Printing"中定義了一個類"PrintDocument",通過呼叫此類的"Print"方法就可以觸發在此名字空間中封裝的另外一個事件"PrintPage"。在此事件中設定要列印的文件內容,從而實現隊文字檔案的列印操作。下面程式碼是呼叫"PrintDocument"的"Print"方法,和呼叫事件"PrintPage"來列印richTextBox1中的內容:
ThePrintDocument.Print ( ) ; //其中ThePrintDocument是"PrintDocument"類的一個物件
下列程式碼是設定列印內容即列印richTextBox1中的內容:
32 float linesPerPage=0;
33 float yPosition=0;
34 int count=0;
35 float leftMargin=ev.MarginBounds.Left;
36 float topMargin=ev.MarginBounds.Top;
37 string line=null;
38 Font printFont=richTextBox1.Font;
39 SolidBrush myBrush=new SolidBrush(Color.Black);
40 //計算每一頁列印多少行
41 linesPerPage=ev.MarginBounds.Height/printFont.GetHeight(ev.Graphics);
42 //重複使用StringReader物件,列印出richTextBox1中的所有內容
43 while(count<linesPerPage&&((line=myReader.ReadLine())!=null))
44 {
45 //計算出要列印的下一行所基於頁面的位置
46 yPosition=topMargin+(count*printFont.GetHeight(ev.Graphics));
47 //列印出richTextBox1中的下一行內容
48 ev.Graphics.DrawString(line,printFont,myBrush,leftMargin,
yPosition,newStringFormat());
49 count++;
50 }
51 //判斷如果還要下一頁,則繼續列印
52 if(line!=null)
53 ev.HasMorePages=true;
54 else
55 ev.HasMorePages=false;
myBrush.Dispose();
相關文章
- Linux檔案管理知識:文字處理Linux
- C#讀取文字檔案和寫文字檔案C#
- Shell指令碼逐行處理文字檔案技巧指令碼
- 11.9Linux檔案管理知識:文字處理Linux
- Python編解碼問題與文字檔案處理Python
- 語言模型文字處理基石:Tokenizer簡明概述模型
- (五)Linux之檔案與目錄管理以及文字處理Linux
- python檔案處理Python
- python處理檔案Python
- python 檔案處理Python
- 批處理概述
- Python之檔案處理Python
- Go xml檔案處理GoXML
- python處理txt檔案Python
- window 批處理檔案
- JSP 日期處理概述JS
- 記一次800多萬XML文字檔案預處理經歷XML
- 使用 Python 處理 CSV 檔案Python
- Python批處理:檔案操作Python
- 控制檔案損壞處理
- java 檔案處理 工具類Java
- python ini 配置檔案處理Python
- Python如何處理檔案的?Python
- ultracompare22,檔案處理
- Python 如何處理大檔案Python
- node js 處理PDF檔案JS
- VBA建立文字檔案、讀寫文字檔案
- SpringBoot-檔案壓縮處理Spring Boot
- Go 語言處理 yaml 檔案GoYAML
- 前端如何處理xml配置檔案?前端XML
- 001.00 一般檔案處理
- Excel VBA 利用FileSystemObject處理檔案ExcelObject
- Python筆記(五)——檔案處理Python筆記
- Hadoop小檔案的處理方式Hadoop
- 用c語言處理檔案C語言
- java中 檔案壓縮處理Java
- webpack(5)webpack處理css檔案WebCSS
- 字元編碼與檔案處理字元
- java自己封裝檔案處理Java封裝