读取txt文件赋值到DataGridView中

本文介绍了一种从TXT文件中读取数据,并利用C#编程语言将其解析为特定格式,最终展示在DataGridView控件中的方法。该方法首先确定了TXT文件中记录和字段的分隔符,然后通过步骤获取文件路径、读取内容、分割记录、提取字段值,最终将数据填充到DataTable对象中以便在DataGridView中显示。

 

先查看txt是每条信息之间是通过什么分割,我是通过换行符(\n)分割的,

然后再看每一条信息中字段是通过什么分割,我的字段是通过 tab键(\t)分割。

 

第一步 先获取到txt文件的路径:

            //获取绝对路径
            var path = "C:/Users/Ljk/Desktop/asdasd/1238191.txt";
            var con = System.IO.File.ReadAllText(path, Encoding.Default);
            //获取相对路径
            var con = System.IO.File.ReadAllText(System.IO.Directory.GetCurrentDirectory() + "//a.txt", Encoding.Default);

第二步 通过(\n)截取分割成一条条信息:


         var arr = con.Split(new string[] { "\n" }, StringSplitOptions.None);

把所分离的信息放在一个string类型的数组里。

 

第三步 循环遍历这个string数组通过(\t)截取分割获取字段值:

            foreach (var s in arr)
            {
                newRow = dataTable.NewRow();
                var farr = s.Split(new string[] { "\t" }, StringSplitOptions.None);
                //farrj就是获得到的字段值的string数组
            }

 

第四步 我为要显示在DataGridView中,创建了一个dataTable来存放字段名称,和值。


下面是全部完整的代码:
            //获取绝对路径
            var path = "C:/Users/Ljk/Desktop/a/a.txt";
            var con = System.IO.File.ReadAllText(path, Encoding.Default);
            //获取相对路径
            //var con = System.IO .File.ReadAllText(System.IO.Directory.GetCurrentDirectory() + "//a.txt", Encoding.Default);
            var arr = con.Split(new string[] { "\n" }, StringSplitOptions.None);
            DataTable dataTable = new DataTable();
            #region 医疗信息查询返回字段
            var dc = dataTable.Columns.Add("医疗机构编码", Type.GetType("System.String"));
            dc = dataTable.Columns.Add("个人编号", Type.GetType("System.String"));
            dc = dataTable.Columns.Add("门诊(住院流水号)", Type.GetType("System.String"));
            dc = dataTable.Columns.Add("单据号", Type.GetType("System.String"));
            dc = dataTable.Columns.Add("交易类型", Type.GetType("System.String"));
            dc = dataTable.Columns.Add("医院交易流水号", Type.GetType("System.String"));
            dc = dataTable.Columns.Add("中心交易流水号", Type.GetType("System.String"));
            dc = dataTable.Columns.Add("医疗费总额", Type.GetType("System.String"));
            dc = dataTable.Columns.Add("本次帐户支付", Type.GetType("System.String"));
            dc = dataTable.Columns.Add("统筹支付金额", Type.GetType("System.String"));
#endregion DataRow newRow = null; foreach (var s in arr) { newRow = dataTable.NewRow(); var farr = s.Split(new string[] { "\t" }, StringSplitOptions.None); //最后一条信息是空的只有一个字段长度等于1 if (farr.Length > 2) { #region 医疗信息查询赋值字段 newRow["医疗机构编码"] = farr[0]; newRow["个人编号"] = farr[1]; newRow["门诊(住院流水号)"] = farr[2]; newRow["单据号"] = farr[3]; newRow["交易类型"] = farr[4]; newRow["医院交易流水号"] = farr[5]; newRow["中心交易流水号"] = farr[6]; newRow["医疗费总额"] = farr[7]; newRow["本次帐户支付"] = farr[8]; newRow["统筹支付金额"] = farr[9];#endregion } dataTable.Rows.Add(newRow); } dataGridView1.DataSource = dataTable; dataGridView1.AllowUserToAddRows = false;

 

 

 




 

转载于:https://www.cnblogs.com/ljknlb/p/7794374.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值