c#-4.0 - 如何正确读取文本文件中的列

标签 c#-4.0 text-files csv

我尝试从文本文件中读取数据并将其加载到数据集中,但如下图所示的不同列只是一长列。我想以 7 列的形式返回数据(与下图中显示的方式相同)。

这是我正在使用的代码,

public DataSet LoadTxtFile(int numberOfRows)
    {
        DataSet ds = new DataSet();
        //try
        //{
            // Creates and opens an ODBC connection
            string strConnString = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + this.dirCSV.Trim() + ";Extensions=asc,csv,tab,txt;Persist Security Info=False";
            string sql_select;
            OdbcConnection conn;
            conn = new OdbcConnection(strConnString.Trim());
            conn.Open();

            //Creates the select command text
            if (numberOfRows == -1)
            {
                sql_select = "select * from [" + this.FileNevCSV.Trim() + "]";
            }
            else
            {
                sql_select = "select top " + numberOfRows + " * from [" + this.FileNevCSV.Trim() + "]";
            }

            //Creates the data adapter
            OdbcDataAdapter obj_oledb_da = new OdbcDataAdapter(sql_select, conn);

            //Fills dataset with the records from CSV file
            obj_oledb_da.Fill(ds, "csv");

            //closes the connection
            conn.Close();
        //}
        //catch (Exception e) //Error
        //{
            //MessageBox.Show(e.Message, "Error - LoadCSV",MessageBoxButtons.OK,MessageBoxIcon.Error);
        //}
        return ds;
    }

Text File Sample Data

最佳答案

我通常采用一个简单的解决方案,即访问文件,读取所有行,在循环中分割行字符串,创建并填充新的数据行,最后将数据行添加到数据表中:

string[] records = File.ReadAllLines(path);
foreach(string record in records)
{
  DataRow r = myDataTable.NewRow();
  string[] fields = record.Split('\t');
  /* Parse each field into the corresponding r column
   * ....
   */
  myDataTable.rows.Add(r);
}

我还找到了有关如何使用 OleDb 连接访问 CSV 文件和架构信息文件的解决方案。我从来没有使用过这种方法。

引用文献:

关于c#-4.0 - 如何正确读取文本文件中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11499893/

相关文章:

c# - DateTime.ToBinary() 和 DateTime.ToFileTime() 有何不同?

c# - 尽管 intellisense 列出了定义,但找不到定义?

python - 如何在 Python 中随机播放磁盘上的文本文件

python - 将 csv 数据绘制为 map - Python

javascript - 从 JSON 转换为 CSV 时,将列标题设为粗体

multithreading - 从 WaitHandle.Wait 构造任务

python - 在固定宽度文本文件中的多个位置添加分隔符时出现问题

c# - 限制文本日志文件的好方法

CSV 正确的行尾

c# - Action<T1, T2> 和传递多个参数时出现问题