zoukankan      html  css  js  c++  java
  • 将Txt文件转换成dataset[原创]

    今天工作中,遇到需要将txt文件转化到内存表dataset中,于是写了一个方法来实现:
    txt文件是特定格式的,文件中,一条记录为一行,各字段之间用“|”分割(注:最后一个字段后,有”|”)各字段依次为数据库中的相应字段。
        举例如下:
        ID号|线路编码|车站编码|运行模式|模式设置日期|模式设置时间|
          1|98|9821|06|20070913|211835|
          方法如下:

     1        /// <summary>
     2        /// 文件加载
     3         /// </summary>
     4        /// <param name="FilePath">带文件名的路径</param>
     5        /// <param name="TableName">自定义的表名</param>
     6        /// <param name="FieldsInArray">自定义的表字段</param>
     7        /// <returns>DataSet</returns>

     8        public static DataSet TextFileLoader(string FilePath, string TableName, string[] FieldsInArray)
     9        {
    10            DataSet ds = new DataSet();
    11            DataTable dt = new DataTable(TableName);
    12
    13            FileStream fs = File.Open(FilePath, FileMode.Open, FileAccess.Read);
    14            StreamReader sr = new StreamReader(fs);
    15
    16            for (int i = 0; i < FieldsInArray.Length; i++)
    17            {
    18                dt.Columns.Add(new DataColumn(FieldsInArray[i], typeof(string)));
    19            }

    20
    21            string strRead;
    22            bool flag = true;
    23
    24            while (flag)
    25            {
    26                strRead = sr.ReadLine();
    27
    28                if (!string.IsNullOrEmpty(strRead))
    29                {
    30                    string[] aryVale = strRead.Split('|');
    31
    32                    DataRow dr = dt.NewRow();
    33                    for (int k = 0; k < FieldsInArray.Length; k++)
    34                    {
    35                        dr[FieldsInArray[k]] = aryVale[k];
    36                    }

    37                    dt.Rows.Add(dr);
    38                }

    39                else
    40                {
    41                    flag = false;
    42                }

    43            }

    44
    45            ds.Tables.Add(dt);
    46            return ds;            
    47        }
  • 相关阅读:
    Leetcode 257. 二叉树的所有路径
    Leetcode 1306. 跳跃游戏 III
    Leetcode 编程中好用的一些C++用法
    Leetcode 96. 不同的二叉搜索树
    Leetcode 892. 三维形体的表面积
    Leetcode 219. 存在重复元素 II
    Leetcode 5281. 使结果不超过阈值的最小除数
    springboot多租户设计
    MAC电脑修改Terminal以及vim高亮显示
    基于springboot搭建的web系统架构
  • 原文地址:https://www.cnblogs.com/winnxm/p/927880.html
Copyright © 2011-2022 走看看