C# 如何使用c从逗号分隔的文本文件行读取特定字段#
我在这里看到很多帖子,但都是关于如何逐行阅读文本文件的。。 但我不想一行一行地读,我想一行一行地读 下面是我的文本文件的示例 已接受,2013/02/22,20:12,ss123,123412341234,失败*某些原因,20500C# 如何使用c从逗号分隔的文本文件行读取特定字段#,c#,C#,我在这里看到很多帖子,但都是关于如何逐行阅读文本文件的。。 但我不想一行一行地读,我想一行一行地读 下面是我的文本文件的示例 已接受,2013/02/22,20:12,ss123,123412341234,失败*某些原因,20500 被拒绝,2013/02/22,20:12,ss123,123412341234,失败*某些原因,20500 输出我想要的文本文件,如: 接受,2013/02/22,20:12,SS123412341234,接受,20500 被拒绝,2013/02/22,20:12,
被拒绝,2013/02/22,20:12,ss123,123412341234,失败*某些原因,20500 输出我想要的文本文件,如: 接受,2013/02/22,20:12,SS123412341234,接受,20500 被拒绝,2013/02/22,20:12,ss123,123412341234,出于某种原因,20500 在上面的输出示例中,首先我需要检查行是否包含Accepted,如果它包含Accepted,那么我需要将第8列(失败*某些原因)替换为Accepted,否则我需要在第8列(某些原因)中只写拒绝的原因。。 如果你能解决我的问题,请提前感谢 我想你喜欢下面的代码..任何朋友都可以帮我。。 在这里输入代码
try
{
System.IO.TextReader ReadFile = new StreamReader("c:\\ATMLOG.txt");
System.IO.TextWriter writeFile = new StreamWriter("c:\\DeatailReport.txt");
string line = ReadFile.ReadLine()
while(line!=null)
{
if(line.contains("Accepted")
{
string[] strArr = line.Split(',');
strArr[8]="Accepted";//i wanted to replace 8th column of comma separated text file line with Accepted
TextWrite.writeln(line);
}
else
{
switch(strArr[8])
{
case "some reasson" : //which reason will be mached that should be write on 8th column of comma separated text file
case "some reasson":
;
;
;
}
}
catch (IOException ex)
{
MessageBox.Show(ex.ToString());
}
您可以使用
String.Split()
我甚至都懒得去做劈腿。由于似乎所有内容都是
失败*出于某种原因
,您只需失败*
即可消失,因此我将执行一次替换:
line = line.Replace("Failed*", "");
为了提高效率,您仍然可以检查是否接受
if (!line.Contains("Accepted"))
{
line = line.Replace("Failed*", "");
}
下面的代码不起作用:我想用Accepted替换“Failed*Some reason”,但原因总是不同的。这与您在问题中在输出文本下描述的内容并不匹配。您的示例表明您只是希望
失败*
消失。也许,如果您对本答案无法满足的各种预期输出进行更详细的阐述,我将更仔细地了解答案的缺点。实际上,我正在尝试读取自动生成的ATM日志文件,并尝试筛选该日志文件并生成详细报告文本文件。将接受或拒绝支票详细信息。被拒绝的检查有被拒绝的原因,如果匹配,我用来与预定义的原因进行比较,然后我使用在该字段中写入该原因。@user2448680:这并不能清除任何内容,也不能解释两个提交的答案缺少什么。是的,第二个提交的答案是正确的,但它只适用于已接受的答案行,,但是由于被拒绝的原因,我必须检查预定义的原因,这就是问题所在…感谢您的回复:)@user2448680您是否有一些示例代码,我可以复制和粘贴,以便我可以通过调试器运行它?是的,我有一些类型的代码,我将上载..感谢您的回复:)@user2448680那么那一行:string在哪里状态=strArr[7]您提到的代码>吗?之前我想将第8列存储在一个字符串变量中,并将该变量与一些预定义的原因进行比较。。
if (!line.Contains("Accepted"))
{
line = line.Replace("Failed*", "");
}