如何使用c#从逗号分隔的文本文件行中读取特定字段

时间:2013-06-03 16:46:45

标签: c#

我在这里看到很多帖子,但所有人都在讲述如何逐行阅读文本文件。 但我不想逐行,我想按字段读取一行。

我的文本文件示例如下

接受,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());
            }

2 个答案:

答案 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*", "");
}