gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:39:11 25 4
gpt4 key购买 nike

我试图从文本文件中读取数据并将其加载到数据集中,但如下图所示的不同列只是一长列。我想将数据返回为 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 文件和架构信息文件的解决方案。我从未使用过这种方法。

引用资料:
  • File.ReadAllLInes() .
  • String.Split() .
  • Stackoverflow related question with OleDb connection .
  • MSDN Schema Information File .
  • 关于c#-4.0 - 如何从文本文件中正确读取列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11499893/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com