Winform 編寫一個讀取并解析csv的程序

眾所周知,CSV是一種通用的、相對簡單的文件格式,被用戶、商業(yè)和科學(xué)廣泛應(yīng)用。
所以在制作游戲時,可能會用到CSV來記錄各個物品的數(shù)據(jù),就像這樣:

ID;Name;Description;ItemType
01;《無機化學(xué)》第四版;風(fēng)靡于各大高校的法器,可造成巨額化學(xué)傷害;Catalyst
02;菜刀;廚房里的常見廚具,但是用途特別多;Tool
03;理想電源;一個沒有內(nèi)阻的理想電源,雖然電壓只有1.5V,但是電流強勁!;Catalyst
04;等軸雙曲線;一個平平無奇的等軸雙曲線,卻可以用其開口困住敵人;Shield
我們要將這些數(shù)據(jù)解析成表格(DataTable),以便更好去呈現(xiàn)或者調(diào)用:

想要解析CSV文件,就必須知道CSV的特征:

純文本,使用某個字符集,比如ASCII、Unicode、EBCDIC或GB2312;
由記錄組成(典型的是每行一條記錄);
每條記錄被分隔符分隔為字段(典型分隔符有逗號、分號或制表符;有時分隔符可以包括可選的空格);
每條記錄都有同樣的字段序列。

(其中第三點可以給我們解析CSV文件提供思路)
那么...不難思考出讀取并解析CSV的程序該怎么寫

將CSV讀取成字符串
利用換行符'\n'將讀取的字符串每一行分割
遍歷分割出的每一個字符串(源文件對應(yīng)每一行),再次利用分隔符進(jìn)行分割(分隔符一般有分號(';')、逗號(',') 、空格(' '),這次示例中使用的分隔符為分號
將分割出來的每一項字符串存入DataTable表格

然后只需將表格控件的DataSource設(shè)置為DataTable就可以啦

理論存在,實踐開始
首先拉個窗口,控件很簡單,只需加個DataGridView和Button即可

功能為點擊按鈕則解析對應(yīng)CSV并呈現(xiàn)在DataGridView上
然后再按鈕點擊事件中寫一個文件位置字符串(我的示例表格再桌面上)
接著獲取csv數(shù)據(jù)
然后我們寫一個加載CSV的方法供按鈕事件調(diào)用(寫在按鈕事件里面也可啦)
下面我們完善這個讀取方法
按照思路,先把每一行分離,并且創(chuàng)建一個文件頭
然后再加上對每一行解析的代碼
(這些看似有一大段,原理實際上非常好弄懂)
最后再按鈕方法中加上這一行,給表格數(shù)據(jù)源賦上讀取CSV方法得到的數(shù)據(jù)
大功告成!
運行看看...


最后附上全部代碼
(文件路徑可以修改的哦~)
(文章發(fā)布時作者還是高中生,自學(xué)編程,文章寫的爛請不要見怪doge)