gpt4 book ai didi

c# - 将除特定行以外的所有行复制到文本文件

转载 作者:行者123 更新时间:2023-11-30 14:06:37 24 4
gpt4 key购买 nike

我正在尝试将所有数据从 sample_data.txt 写入 t_sdata.txt 除了用户在 文本框中输入的字符串所在的行(txt_key) 可以找到。

[sample data]
key,item,qty
0001,Apple,5
0002,Orange,10
0003,Grapes,15

所以如果我在文本框中输入 0002t_sdata.txt 应该包含:

[sample output data]
key,item,qty
0001,Apple,5
0003,Grapes,15

这是我现在拥有的,目前没有保存任何东西:

string plist = @"sample_data.txt";
string tdata = @"t_sdata.txt";
var dataline = File.ReadAllLines(plist)
.SkipWhile(l => !l.StartsWith(txt_key.Text))
.TakeWhile(l => !l.StartsWith(txt_key.Text) && l != null);
using (StreamWriter w = File.AppendText(tdata))
{
foreach (var lines in dataline)
{
if (dataline == null)
w.WriteLine(lines);
}
}

我一直在研究 SkipWhile/TakeWhile 位,但显然我做错了什么。

(不确定是否相关)注意: key 可以有不同的长度,01 可以有与 001 不同的数据

最佳答案

你的解决方案看起来很复杂,你真的不关心哪一行没有被选入新文件:

string plist = @"sample_data.txt";
string tdata = @"t_sdata.txt";
string input = "0002";

File.WriteAllLines(tdata, File.ReadLines(plist).Where(line => !line.StartsWith(input)));

对于您的文件格式,一个稍微好一点的解决方案是实际分隔不同的字段,因此 025 匹配 0220,测试,5:

File.WriteAllLines(tdata, File.ReadLines(plist)
.Where(line => line.Split(new char[]{ ',' }).First() != input));

关于c# - 将除特定行以外的所有行复制到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46713731/

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