无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

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

2023-07-09 00:45 作者:钅離_LX  | 我要投稿

眾所周知,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的特征:

  1. 純文本,使用某個字符集,比如ASCII、Unicode、EBCDIC或GB2312;

  2. 由記錄組成(典型的是每行一條記錄);

  3. 每條記錄被分隔符分隔為字段(典型分隔符有逗號、分號或制表符;有時分隔符可以包括可選的空格);

  4. 每條記錄都有同樣的字段序列。

(其中第三點可以給我們解析CSV文件提供思路)

那么...不難思考出讀取并解析CSV的程序該怎么寫

  1. 將CSV讀取成字符串

  2. 利用換行符'\n'將讀取的字符串每一行分割

  3. 遍歷分割出的每一個字符串(源文件對應(yīng)每一行),再次利用分隔符進(jìn)行分割(分隔符一般有分號(';')、逗號(',') 、空格(' '),這次示例中使用的分隔符為分號

  4. 將分割出來的每一項字符串存入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ù)

大功告成!

運行看看...


效果非常好!CSV數(shù)據(jù)呈現(xiàn)在表格里啦!

最后附上全部代碼

(文件路徑可以修改的哦~)


(文章發(fā)布時作者還是高中生,自學(xué)編程,文章寫的爛請不要見怪doge)


Winform 編寫一個讀取并解析csv的程序的評論 (共 條)

分享到微博請遵守國家法律
鸡东县| 崇文区| 福清市| 池州市| 嫩江县| 北安市| 白山市| 平湖市| 濉溪县| 满城县| 喀喇| 云南省| 马关县| 望谟县| 社会| 西宁市| 辽阳县| 西藏| 科尔| 桂平市| 昌邑市| 龙海市| 荆门市| 壤塘县| 财经| 赫章县| 平原县| 大邑县| 老河口市| 德保县| 改则县| 铜梁县| 宜黄县| 西乡县| 孙吴县| 平陆县| 临江市| 盐山县| 桦南县| 志丹县| 广宁县|