C 處理文字檔案

2021-04-02 03:15:29 字數 4874 閱讀 2619

文字檔案是一種常用的檔案格式,所以如何處理文字檔案也就成為程式設計的乙個重點。本文就來**一下用c#是如何來處理文字檔案。其內容重點就是如何讀取文字檔案內容、如何改變文字檔案的內容,以及如何用c#來實現對讀取後的文字檔案的列印預覽和列印。

(1).微軟公司視窗2000伺服器版

(2)..net framework sdk beta 2

在本文介紹的程式中,是把讀取的文字檔案,用乙個richtextbox元件顯示出來。要讀取文字檔案,必須使用到"streamreader"類,這個類是由名字空間"system.io"中定義的。通過"streamreader"類的"readline ( )"方法,就可以讀取開啟資料流當前行的資料了。下面**實現的功能就是讀取"c:/file.txt"並在richtextbox1元件中顯示出來:

filestream fs = new filestream ( "c://file.txt" , filemode.open , fileaccess.read ) ;

streamreader m_streamreader = new streamreader ( fs ) ;

//使用streamreader類來讀取檔案

m_streamreader.basestream.seek ( 0 , seekorigin.begin ) ;

// 從資料流中讀取每一行,直到檔案的最後一行,並在richtextbox1中顯示出內容

this.richtextbox1.text = "" ;

string strline = m_streamreader.readline ( ) ;

while ( strline != null )

//關閉此streamreader物件

m_streamreader.close ( ) ;

在本文介紹的程式中,改變文字檔案資料內容的功能是通過改變richtextbox1中的內容來實現的,當richtextbox1這的內容改變後,按動"另存為",就把richtextbox1中內容儲存到指定的文字檔案中了。要想改變文字檔案內容,要使用到"streamwriter"類,這個類和"streamreader"一樣,都是由"system.io"名字空間來定義的。通過"streamwriter"類的"write ( )"方法,就可以輕鬆實現文字檔案內容的更改了。下面**的功能是:如果"c"盤存在"file.txt",則把richtextbox1中的內容寫入到"file.txt"中,如果不存在,則建立此檔案,然後在寫入文字資料。

//建立乙個檔案流,用以寫入或者建立乙個streamwriter

filestream fs = new filestream ( "c//file.txt" , filemode.openorcreate , fileaccess.write ) ;

streamwriter m_streamwriter = new streamwriter ( fs ) ;

m_streamwriter.flush ( ) ;

// 使用streamwriter來往檔案中寫入內容

m_streamwriter.basestream.seek ( 0 , seekorigin.begin ) ;

// 把richtextbox1中的內容寫入檔案

m_streamwriter.write ( richtextbox1.text ) ;

//關閉此檔案

m_streamwriter.flush ( ) ;

m_streamwriter.close ( ) ;

從上面這二個**可以,寫入資料比起讀取資料要顯得容易些。

(3).如何實現列印預覽:

列印預覽是通過列印預覽對話方塊來實現的,實現對讀取得文字檔案的列印預覽,最為重要的就是要通知列印預覽對話方塊所要預覽的檔案的內容。下面**就是把richtextbox1中顯示的內容,通過列印預覽對話方塊顯示出來:

string strtext = richtextbox1.text ;

stringreader myreader = new stringreader ( strtext ) ;

printpreviewdialog printpreviewdialog1 = new printpreviewdialog ( ) ;

printpreviewdialog1.document = theprintdocument ;

printpreviewdialog1.formborderstyle = formborderstyle.fixed3d ;

printpreviewdialog1.showdialog ( ) ;

(4).如何列印檔案:

在名字空間"system.drawing.printing"中定義了乙個類"printdocument",通過呼叫此類的"print"方法就可以觸發在此名字空間中封裝的另外乙個事件"printpage"。在此事件中設定要列印的文件內容,從而實現隊文字檔案的列印操作。下面**是呼叫"printdocument"的"print"方法,和呼叫事件"printpage"來列印richtextbox1中的內容:

theprintdocument.print ( ) ;//其中theprintdocument是"printdocument"類的乙個物件

下列**是設定列印內容即列印richtextbox1中的內容:

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 ) ;

//重複使用stringreader物件 ,列印出richtextbox1中的所有內容

while ( count < linesperpage && ( ( line = myreader.readline ( ) ) != null ) )

if ( line != null )

ev.ha**orepages = true ;

else

ev.ha**orepages = false ;

mybrush.dispose ( ) ;

注釋:由於在上述的**中省掉了這些類所對於地名字空間,所以要想成功的編譯和執行上述**,就要在程式頭部要匯入所使用的名字空間。

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

//清除程式中使用多的資源

protected override void dispose ( bool disposing )

}

base.dispose ( disposing ) ; }

private void initializecomponent ( )

static void main ( )

private void button1_click ( object sender , system.eventargs e )

//關閉此streamreader物件

m_streamreader.close ( ) ; }

}

catch ( exception em )

}

private void button3_click ( object sender , system.eventargs e )

}

catch ( exception em )

}

private void button4_click ( object sender , system.eventargs e )

//預覽列印文件

private void button2_click ( object sender , system.eventargs e )

catch ( exception exp )

}

//列印richtextbox1中的內容

private void button5_click ( object sender , system.eventargs e )

}

protected void theprintdocument_printpage ( object sender , printpageeventargs ev )

if ( line != null )

ev.ha**orepages = true ;

else

ev.ha**orepages = false ;

mybrush.dispose ( ) ; }

}

四. 總結:

本文雖然只是介紹了用c#處理文字檔案,但其實對c#處理其他檔案也有很多的參考價值,這是因為在名字空間"system.io"中定義的用以處理其他檔案的類的結構和用以處理文字檔案的類的結構有很多是相同的。希望本文對你用c#進行檔案方面的程式設計有所幫助。

C 處理文字檔案

文字檔案是一種常用的檔案格式,所以如何處理文字檔案也就成為程式設計的乙個重點。本文就來 一下用c 是如何來處理文字檔案。其內容重點就是如何讀取文字檔案內容 如何改變文字檔案的內容,以及如何用c 來實現對讀取後的文字檔案的列印預覽和列印。一 本文程式設計和執行的軟體環境 1 微軟公司視窗2000伺服器...

C 處理文字檔案

文字檔案是一種常用的檔案格式,所以如何處理文字檔案也就成為程式設計的乙個重點。本文就來 一下用c 是如何來處理文字檔案。其內容重點就是如何讀取文字檔案內容 如何改變文字檔案的內容,以及如何用c 來實現對讀取後的文字檔案的列印預覽和列印。一 本文程式設計和執行的軟體環境 1 微軟公司視窗2000伺服器...

C 處理文字檔案

文字檔案是一種常用的檔案格式,所以如何處理文字檔案也就成為程式設計的乙個重點。本文就來 一下用c 是如何來處理文字檔案。其內容重點就是如何讀取文字檔案內容 如何改變文字檔案的內容,以及如何用c 來實現對讀取後的文字檔案的列印預覽和列印。1 微軟公司視窗2000伺服器版 2 net framework...