gpt4 book ai didi

c# - 拆分文件 .txt 以填充数据表 C#

转载 作者:太空宇宙 更新时间:2023-11-03 19:59:00 28 4
gpt4 key购买 nike

我需要帮助,我有如下文件 txt:

Jhonathan   Car   17000
Tony Bike 4000
Mika Home 20000

然后我想使用 split(' ') 将此文件 .txt 加载到数据表中,我确实创建了如下代码

DataTable dt = new DataTable();
dt.Columns.Add("COL1"); dt.Columns.Add("COL2"); dt.Columns.Add("COL3");
string[] aa = File.ReadAllLines(txtFileName);
foreach (var item in aa)
{
DataRow dr = dt.NewRow();
dr[0] = item.ToString();
dt.Rows.Add(dr);
}
dataGridView3.DataSource = dt;

我希望结果如下所示:真实结果:

COL1       | COL2   | COL3 
----------------------------
Jhonathan | Car |17000
Tony | Bike |4000
Mika | Home |20000

但是我的代码的结果并不像预期的那样,结果如下:失败结果:

 COL1                   | COL2    | COL3 
-------------------------------------------
Jhonathan Car 17000 | |
Tony Bike 4000 | |
Mika Home 20000 | |

那么如何拆分像真实结果这样的结果。谢谢:-)

最佳答案

正则表达式解决方案

// regular expression for split row:
Regex parser = new Regex(@"\s+");

// modified code (replace with your file path)
DataTable dt = new DataTable();
dt.Columns.Add("COL1"); dt.Columns.Add("COL2"); dt.Columns.Add("COL3");
string[] lines = File.ReadAllLines(@"D:\Temp\text.txt");
foreach (var line in lines)
{
DataRow dr = dt.NewRow();
string[] words = parser.Split(line);
dr[0] = words[0];
dr[1] = words[1];
dr[2] = words[2];
dt.Rows.Add(dr);
}

固定字符串掩码解决方案

// fixed length mask (number of charachers for each field except last field)
int[] mask = { 12, 6 };
int maskLength = mask.Length;

// modified code (replace with your file path)
DataTable dt = new DataTable();
dt.Columns.Add("COL1"); dt.Columns.Add("COL2"); dt.Columns.Add("COL3");
string[] lines = File.ReadAllLines(@"D:\Temp\text.txt");
foreach (var line in lines)
{
DataRow dr = dt.NewRow();
int pos = 0;
for (int i = 0; i < maskLength; pos += mask[i++])
{
dr[i] = line.Substring(pos, mask[i]).Trim();
}
dr[maskLength] = line.Substring(pos).Trim();
dt.Rows.Add(dr);
}

关于c# - 拆分文件 .txt 以填充数据表 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30524153/

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