在學會使用 C# 讀取 TXT 檔案 之後,下一步就是理解實際的程式碼運作方式。本篇將針對 C# TXT 檔案解析範例 進行完整說明,包含文字檔讀取流程、逐行處理邏輯,以及常見的資料解析技巧,幫助你真正看懂每一段程式碼,而不只是單純使用。
本篇重點:
- ✔ C# 讀取 TXT 範例程式碼解析
- ✔ 文字檔逐行讀取與處理方式
- ✔ 常見實務情境與解析技巧
👉 如果你還沒看基礎教學,建議先閱讀:C# TXT 檔案解析教學|讀取文字檔與資料處理完整範例|C# 檔案處理系列
開始範例程式碼解析
範例的功能:txt檔案程式解析

1 . 開啟 C# TXT 檔案解析教學|讀取文字檔與資料處理完整範例|C# 檔案處理系列 程式

2 . 程式碼研究
- 我們找到button1按下會執行的程式碼,開始一行一行解讀。
private void button1_Click(object sender, EventArgs e)
{
string filePath = @"C:\txtParse\課程8.txt";
string[] lines = File.ReadAllLines(filePath);
foreach (string line in lines)
{
string[] values = line.Split(
new char[] { ' ' },
StringSplitOptions.RemoveEmptyEntries
);
string account = values[0];
string code = values[1];
string type = values[2];
string amount = values[3];
string time = values[4];
Console.WriteLine(account + "," + code + "," + type + "," + amount + "," + time);
}
}
程式碼片段:
string filePath = @"C:\txtParse\課程8.txt";string[] lines = File.ReadAllLines(filePath);
-------------------------------------------------------------------------------------------------------
第 1 行 宣告一個string(字串型態)的變數filePath ,把要解析的txt檔案存放的資料夾路徑,寫在這個變數裡面,等一下就能用這個變數找到檔案位置。
第 2 行 File.ReadAllLines是.net內建提供的用法,如ReadAllLines的字面意思用來讀取txt檔案的每一行,並且讀出來的值一行放一個位置,所以我們用string(字串型態)陣列lines去接讀回來的內容。
讀回來的資料就會長這樣:["第一行的值","第二行的值","第三行的值"]。
這就是陣列,但其實你可以想成也是一個容器,只是這容器比較像有分隔的箱子可以裝很多東西。
程式碼片段:
foreach (string line in lines){
-------------------------------------------------------------------------------------------------------
第 1 行 foreach 對陣列lines裡面的值一個一個取出來。
程式碼片段:
- string[] values = line.Split(new char[] { ' ' },StringSplitOptions.RemoveEmptyEntries);
-------------------------------------------------------------------------------------------------------
第 1 行 這串一起看會有點複雜,我先用簡單的方式講解。Split這個方法是string裡面內建的方法,如字面上的意思它可以把字串做分割。
舉例: 假設今天有一串字串string test="xxx,yyy,zzz"; ,用test.Split(new char[] { ',' }),就會分割出["xxx","yyy","zzz"] 。
需求:0000000000000000002 000000000000000P 入錢 00000001 20250620080337你會發現每一個值中間是用空白做分割,而且空白的數量還不固定,如果我們只用一個空白字元Split(new char[] { ' ' })去分割,你會發現多出很多空的字串["0000000000000000002","","000000000000000P","","入錢","","","","","","00000001","","","","20250620080337"],因此我們才需要加入StringSplitOptions.RemoveEmptyEntries如字面意思就是拿掉空的字串,這樣才能正確地取出值["0000000000000000002","000000000000000P","入錢","00000001","20250620080337"]。
最後我們就能用string陣列values去接這個拆分回來的值。
(*補充:還是要再次提醒,如果看不懂沒關係,只要大略懂概念就行,因為這些拆分的格式其實都很固定,我自己也都沒在記,需要時再上網查即可。)
程式碼片段:
string account = values[0];string code = values[1];string type = values[2];string amount = values[3];string time = values[4];
-------------------------------------------------------------------------------------------------------
第 1 行 前一段程式碼,我們有一個string陣列values接回字串拆分的值,因為我們的txt格式固定,所以總共會有五個值存在陣列裡,因此我們從位置0開始取出到位置4。string account = values[0]; ,取第一個陣列值,帳戶資訊,所以命名string變數為account來存這個值。之後2-5行程式碼就都是一樣的概念。
第 2 行 string code = values[1]; ,取陣列的第二個值,銀行交易碼,取名code。
第 3 行 string type = values[2];,取陣列的第三個值,交易別,取名type。
第 4 行 string amount = values[3]; ,取陣列的第四個值,金額,取名amount。
第 5 行 string time = values[4];,取陣列的第五個值,交易時間,取名time。
程式碼片段:
Console.WriteLine(account + "," + code + "," + type + "," + amount + "," + time);
-------------------------------------------------------------------------------------------------------
第 1 行 Console.WriteLine就是.net內建的用法,會把你丟進去的內容顯示在輸出框。
(account + "," + code + "," + type + "," + amount + "," + time),在.net裡如果是string的變數做相 + 就會把字串串在一起,我們這邊把解析的每個值做串連起來,每個值與值之間多加一個逗號讓我們再輸出框比較好看每個值。
結論
目前我們到這邊已經成功解析txt的值,不過你會發現我們只是把程式寫出來,解析的內容也只有按下執行的工程師才能在編譯器裡面的輸出框看到,這並不能幫助使用者。因此軟體工程師往往不是只要把程式跟功能做出來就好,還要站在使用者的角度去為他們著想。
之前我們的篇章都比較簡單都是一個按鈕就把功能做好了,現在這個功能剛好需要讓使用者可以看到數值,下一章我們要開始進階多增加元件來顯示解析txt出來的值。














