我在这里看到很多帖子,但所有人都在讲述如何逐行阅读文本文件。 但我不想逐行,我想按字段读取一行。
我的文本文件示例如下
接受,2013/02 / 22,20:12,ss123,1234,1234,1234,失败*某些原因,20,500
拒绝,2013/02 / 22,20:12,ss123,1234,1234,1234,失败*某些原因,20,500
我希望输出文本文件:
接受,2013/02 / 22,20:12,ss123,1234,1234,1234,接受,20,500
拒绝,2013/02 / 22,20:12,ss123,1234,1234,1234,某种原因,20,500
在上面的输出示例中,首先我需要检查该行是否包含Accepted,如果它包含Accepted,那么我需要用Accepted替换第8列(失败*某些原因),否则我需要在第8次写入原因专栏(某些原因)为什么它被拒绝.. 如果你能解决我的问题,请提前感谢...
我在想下面的代码.. whatbuddy plz帮帮我.. 在这里输入代码
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());
}
答案 0 :(得分:2)
您可以使用String.Split()
string[] strArr = myStr.Split(',');
答案 1 :(得分:2)
我甚至不愿意执行拆分。由于所有内容都显示为Failed*Some Reason
,您只需要Failed*
消失,我会执行替换:
line = line.Replace("Failed*", "");
为了提高效率,您仍然可以检查Accepted
。
if (!line.Contains("Accepted"))
{
line = line.Replace("Failed*", "");
}