众所周知,CSV是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。
所以在制作游戏时,可能会用到CSV来记录各个物品的数据,就像这样:
【资料图】
ID;Name;Description;ItemType
01;《无机化学》第四版;风靡于各大高校的法器,可造成巨额化学伤害;Catalyst
02;菜刀;厨房里的常见厨具,但是用途特别多;Tool
03;理想电源;一个没有内阻的理想电源,虽然电压只有,但是电流强劲!;Catalyst
04;等轴双曲线;一个平平无奇的等轴双曲线,却可以用其开口困住敌人;Shield
我们要将这些数据解析成表格(DataTable),以便更好去呈现或者调用:
想要解析CSV文件,就必须知道CSV的特征:
纯文本,使用某个字符集,比如ASCII、Unicode、EBCDIC或GB2312;
由记录组成(典型的是每行一条记录);
每条记录被分隔符分隔为字段(典型分隔符有逗号、分号或制表符;有时分隔符可以包括可选的空格);
每条记录都有同样的字段序列。
(其中第三点可以给我们解析CSV文件提供思路)
那么...不难思考出读取并解析CSV的程序该怎么写
将CSV读取成字符串
利用换行符'\n'将读取的字符串每一行分割
遍历分割出的每一个字符串(源文件对应每一行),再次利用分隔符进行分割(分隔符一般有分号(';')、逗号(',') 、空格(' '),这次示例中使用的分隔符为分号
将分割出来的每一项字符串存入DataTable表格
然后只需将表格控件的DataSource设置为DataTable就可以啦
理论存在,实践开始
首先拉个窗口,控件很简单,只需加个DataGridView和Button即可
功能为点击按钮则解析对应CSV并呈现在DataGridView上
然后再按钮点击事件中写一个文件位置字符串(我的示例表格再桌面上)
接着获取csv数据
然后我们写一个加载CSV的方法供按钮事件调用(写在按钮事件里面也可啦)
下面我们完善这个读取方法
按照思路,先把每一行分离,并且创建一个文件头
然后再加上对每一行解析的代码
(这些看似有一大段,原理实际上非常好弄懂)
最后再按钮方法中加上这一行,给表格数据源赋上读取CSV方法得到的数据
大功告成!
运行看看...
最后附上全部代码
(文件路径可以修改的哦~)
(文章发布时作者还是高中生,自学编程,文章写的烂请不要见怪doge)
-
1怎么打开电脑路由器设置?初次设置无线路由器方法是什么?
-
2路由器如何设置提升网速?学校寝室路由器无线怎么设置的?
-
3电脑没连路由器却能进入路由器界面?电脑无法进入路由器?
-
4把电脑变成无线路由器怎么弄?台式电脑如何变成无线路由器?
-
5重新启用U盘的技巧有什么?U盘提速的技巧有哪些?
-
6如何安全的使用U盘?U盘日常使用的技巧有哪些?
-
7曲面显示器怎么选择?曲面显示器和平面显示器的区别有什么?
-
8安卓设备型号和名称可以改吗?安卓手机如何修改手机IMEI串号?
-
9地址和域名是什么关系?互联网域名是商标的一个组成部分对错?
-
10Linux获取文件名称和文件路径并写入txt?linux下exports文件是什么?