C#處理文本文件淺析
作者:佚名
這里介紹用C#處理文本文件的完整源程序代碼,本文雖然只是介紹了用C#處理文本文件,但其實對C#處理其他文件也有很多的參考價值。
本文向大家介紹C#處理文本文件,可能好多人還不知道C#處理文本文件,沒有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
用C#處理文本文件的完整源程序代碼(control.cs),現(xiàn)在就可以方便的得到用C#處理文本文件的一個完整的源程序,具體如下:
- using System ;
- using System.Drawing ;
- using System.Collections ;
- using System.ComponentModel ;
- using System.Windows.Forms ;
- using System.Data ;
- using System.IO ;
- using System.Drawing.Printing ;
- public class Form1 : Form
- {
- private RichTextBox richTextBox1 ;
- private Button button1 ;
- private Button button2 ;
- private Button button3 ;
- private Button button4 ;
- private Button button5 ;
- private OpenFileDialog openFileDialog1 ;
- private SaveFileDialog saveFileDialog1 ;
- private PrintDialog printDialog1 ;
- private PrintDocument ThePrintDocument ;
- private PrintPreviewDialog printPreviewDialog1 ;
- private StringReader myReader ;
- private System.ComponentModel.Container components = null ;
- public Form1 ( )
- {
- //初始化窗體中的各個組件
- InitializeComponent ( ) ;
- }
- //清除程序中使用多的資源
- protected override void Dispose ( bool disposing )
- {
- if ( disposing )
- {
- if ( components != null )
- {
- components.Dispose ( ) ;
- }
- }
- base.Dispose ( disposing ) ;
- }
- private void InitializeComponent ( )
- {
- richTextBox1 = new RichTextBox ( ) ;
- button1 = new Button ( ) ;
- button2 = new Button ( ) ;
- button3 = new Button ( ) ;
- button4 = new Button ( ) ;
- button5 = new Button ( ) ;
- saveFileDialog1 = new SaveFileDialog ( ) ;
- openFileDialog1 = new OpenFileDialog ( ) ;
- printPreviewDialog1 = new PrintPreviewDialog ( ) ;
- printDialog1 = new PrintDialog ( ) ;
- ThePrintDocument = new PrintDocument ( ) ;
- ThePrintDocument.PrintPage += new PrintPageEventHandler
( ThePrintDocument_PrintPage ) ;- SuspendLayout ( ) ;
- richTextBox1.Anchor = AnchorStyles.None ;
- richTextBox1.Name = "richTextBox1" ;
- richTextBox1.Size = new Size ( 448 , 280 ) ;
- richTextBox1.TabIndex = 0 ;
- richTextBox1.Text = "" ;
- button1.Anchor = AnchorStyles.None ;
- button1.Location = new Point ( 41 , 289 ) ;
- button1.Name = "button1" ;
- button1.Size = new Size ( 48 , 30 ) ;
- button1.TabIndex = 1 ;
- button1.Text = "打開" ;
- button1.Click += new System.EventHandler ( button1_Click ) ;
- button2.Anchor = AnchorStyles.None ;
- button2.Location = new Point ( 274 , 288 ) ;
- button2.Name = "button2" ;
- button2.Size = new Size ( 48 , 30 ) ;
- button2.TabIndex = 4 ;
- button2.Text = "預(yù)覽" ;
- button2.Click += new System.EventHandler ( button2_Click ) ;
- button3.Anchor = AnchorStyles.None ;
- button3.Location = new Point ( 108 , 288 ) ;
- button3.Name = "button3" ;
- button3.Size = new Size ( 48 , 30 ) ;
- button3.TabIndex = 2 ;
- button3.Text = "保存" ;
- button3.Click += new System.EventHandler ( button3_Click ) ;
- button4.Anchor = AnchorStyles.None ;
- button4.Location = new Point ( 174 , 288 ) ;
- button4.Name = "button4" ;
- button4.Size = new Size ( 80 , 30 ) ;
- button4.TabIndex = 3 ;
- button4.Text = "打印機設(shè)置" ;
- button4.Click += new System.EventHandler ( button4_Click ) ;
- button5.Anchor = AnchorStyles.None ;
- button5.Location = new Point ( 345 , 288 ) ;
- button5.Name = "button5" ;
- button5.Size = new Size ( 48 , 30 ) ;
- button5.TabIndex = 5 ;
- button5.Text = "打印" ;
- button5.Click += new System.EventHandler ( button5_Click ) ;
- saveFileDialog1.DefaultExt = "*.txt" ;
- saveFileDialog1.FileName = "file.txt" ;
- saveFileDialog1.InitialDirectory = "c:\\" ;
- saveFileDialog1.Title = "另存為!" ;
- openFileDialog1.DefaultExt = "*.txt" ;
- openFileDialog1.FileName = "file.txt" ;
- openFileDialog1.InitialDirectory = "c:\\" ;
- openFileDialog1.Title = "打開文本文件!" ;
- AutoScaleBaseSize = new Size ( 6 , 14 ) ;
- ClientSize = new Size ( 448 , 325 ) ;
- this.Controls.Add ( button1 ) ;
- this.Controls.Add ( button2 ) ;
- this.Controls.Add ( button3 ) ;
- this.Controls.Add ( button4 ) ;
- this.Controls.Add ( button5 ) ;
- this.Controls.Add ( richTextBox1 ) ;
- this.MaximizeBox = false ;
- this.Name = "Form1" ;
- this.Text = "C#來操作文本文件" ;
- this.ResumeLayout ( false ) ;
- }
- static void Main ( )
- {
- Application.Run ( new Form1 ( ) ) ;
- }
- private void button1_Click ( object sender , System.EventArgs e )
- {
- try
- {
- if ( openFileDialog1.ShowDialog ( ) == DialogResult.OK )
- {
- FileStream fs = new FileStream ( openFileDialog1.FileName,
FileMode.Open , FileAccess.Read ) ;- StreamReader m_streamReader = new StreamReader ( fs ) ;
- //使用StreamReader類來讀取文件
- m_streamReader.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
- // 從數(shù)據(jù)流中讀取每一行,直到文件的***一行,并在richTextBox1中顯示出內(nèi)容
- this.richTextBox1.Text = "" ;
- string strLine = m_streamReader.ReadLine ( ) ;
- while ( strLine != null )
- {
- this.richTextBox1.Text += strLine + "\n" ;
- strLine = m_streamReader.ReadLine ( ) ;
- }
- //關(guān)閉此StreamReader對象
- m_streamReader.Close ( ) ;
- }
- }
- catch ( Exception em )
- {
- Console.WriteLine ( em.Message.ToString ( ) ) ;
- }
- }
- private void button3_Click ( object sender , System.EventArgs e )
- {
- try
- {
- //獲得另存為的文件名稱
- if ( saveFileDialog1.ShowDialog ( ) == DialogResult.OK )
- {
- //創(chuàng)建一個文件流,用以寫入或者創(chuàng)建一個StreamWriter
- FileStream fs = new FileStream ( @saveFileDialog1.FileName,
FileMode.OpenOrCreate , FileAccess.Write ) ;- StreamWriter m_streamWriter = new StreamWriter ( fs ) ;
- m_streamWriter.Flush ( ) ;
- // 使用StreamWriter來往文件中寫入內(nèi)容
- m_streamWriter.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ;
- // 把richTextBox1中的內(nèi)容寫入文件
- m_streamWriter.Write ( richTextBox1.Text ) ;
- //關(guān)閉此文件
- m_streamWriter.Flush ( ) ;
- m_streamWriter.Close ( ) ;
- }
- }
- catch ( Exception em )
- {
- Console.WriteLine ( em.Message.ToString ( ) ) ;
- }
- }
- private void button4_Click ( object sender , System.EventArgs e )
- {
- printDialog1.Document = ThePrintDocument ;
- printDialog1.ShowDialog ( ) ;
- }
- //預(yù)覽打印文檔
- private void button2_Click ( object sender , System.EventArgs e )
- {
- try
- {
- string strText = richTextBox1.Text ;
- myReader = new StringReader ( strText ) ;
- PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ;
- printPreviewDialog1.Document = ThePrintDocument;
- printPreviewDialog1.FormBorderStyle = FormBorderStyle.Fixed3D;
- printPreviewDialog1.ShowDialog ( ) ;
- }
- catch ( Exception exp )
- {
- Console.WriteLine ( exp.Message.ToString ( ) ) ;
- }
- }
- //打印richTextBox1中的內(nèi)容
- private void button5_Click ( object sender , System.EventArgs e )
- {
- printDialog1.Document = ThePrintDocument ;
- string strText = richTextBox1.Text ;
- myReader = new StringReader ( strText ) ;
- if ( printDialog1.ShowDialog ( ) == DialogResult.OK )
- {
- ThePrintDocument.Print ( ) ;
- }
- }
- protected void ThePrintDocument_PrintPage ( object sender , PrintPageEventArgs ev )
- {
- float linesPerPage = 0 ;
- float yPosition = 0 ;
- int count = 0 ;
- float leftMargin = ev.MarginBounds.Left ;
- float topMargin = ev.MarginBounds.Top ;
- string line = null ;
- Font printFont = richTextBox1.Font ;
- SolidBrush myBrush = new SolidBrush ( Color.Black ) ;
- //計算每一頁打印多少行
- linesPerPage = ev.MarginBounds.Height / printFont.GetHeight ( ev.Graphics ) ;
- //重復(fù)使用StringReader對象 ,打印出richTextBox1中的所有內(nèi)容
- while ( count < linesPerPage && ( ( line = myReader.ReadLine ( ) ) != null ) )
- {
- // 計算出要打印的下一行所基于頁面的位置
- yPosition = topMargin + ( count * printFont.GetHeight ( ev.Graphics ) ) ;
- // 打印出richTextBox1中的下一行內(nèi)容
- ev.Graphics.DrawString ( line , printFont , myBrush ,
leftMargin , yPosition , new StringFormat ( ) ) ;- count++ ;
- }
- // 判斷如果還要下一頁,則繼續(xù)打印
- if ( line != null )
- ev.HasMorePages = true ;
- else
- ev.HasMorePages = false ;
- myBrush.Dispose ( ) ;
- }
- }
本文雖然只是介紹了用C#處理文本文件,但其實對C#處理其他文件也有很多的參考價值,這是因為在名字空間"System.IO"中定義的用以處理其他文件的類的結(jié)構(gòu)和用以處理文本文件的類的結(jié)構(gòu)有很多是相同的。希望本文對你用C#進行文件方面的編程有所幫助。
【編輯推薦】
責(zé)任編輯:佚名
來源:
博客園