如何在文本文件的特定行和列中实现if语句

本文关键字:实现 语句 if 文本 文件 | 更新日期: 2023-09-27 18:03:54

我有一个像

这样的文本文件
Time    amplitude   index
1       0,25        25
2       0,68        28
3       -2,5        69
4       2,5         94
5       3           45
6       5           26

我需要的是这个

Time    amplitude   index   classified
1       0,25        25      1
2       0,68        28      1
3       -2,5        69      2
4       2,5         94      1
5       3           45      1
6       5           26      1

它需要编写额外的列(分类)(列分类)表述我们分类,振幅增加时,声明2(列分类)我们分类,振幅降低期间。我有一个大的文本文件,它需要写在新的文本文件。我试着用这样的代码:

private void button3_Click(object sender, EventArgs e)
{
    StreamReader dat = new StreamReader(textBox1.Text, System.Text.Encoding.Default);
    StreamWriter sw = new StreamWriter(textBox2.Text, true);
    {
    while (!dat.EndOfStream)
    {
        string mainLine1 = dat.ReadLine();
        string[] originalLine1 = mainLine1.Split(new string[] { "'t" }, StringSplitOptions.None);
        for (int i = 1; i < mainLine1.Length; i++)
        {
            if (originalLine1[i] > originalLine1[i-1])
            {
                sw.WriteLine(originalLine1[0] + "'t" + originalLine1[1] + "'t"+"1");
            }
        }
    }
    sw.Close();
}

我知道代码是不对的,但这就是我想的。

如何在文本文件的特定行和列中实现if语句

解决问题。如果有人需要它。

示例文件:

1

2

3

2

1

1

2

3

2

1

1

2

3

需要获得额外的列和写tex文件:1 1

2 1

1

3

2 2

1 23

12

3

3

34

24

1

1 1

2 1

1

3

代码
string niz;
                        int j=0;
                        string[] vrstica, vrstica_prej=null;
                        while (!dat.EndOfStream)
                        {
                            niz = dat.ReadLine();
                            vrstica = niz.Split(''t');
                            j++;
                            if (j < 2)
                            {
                                sw.WriteLine(vrstica[0] + "'t" + vrstica[1] + "'t" + "0");
                            }
                            else
                            {
                                double a = Convert.ToDouble(vrstica[0]);
                                double a_pre = Convert.ToDouble(vrstica_prej[0]);
                                if (a > a_pre && a > 0)
                                {sw.WriteLine(vrstica[0] + "'t" + "1"); }
                                else if (a < a_pre && a > 0)
                                {sw.WriteLine(vrstica[0] + "'t" + "2"); }
                                else if (a < a_pre && a < 0)
                                {sw.WriteLine(vrstica[0] +"'t" + "3"); }
                                else if (a > a_pre && a < 0)
                                {sw.WriteLine(vrstica[0] + "'t" + "4"); }
                            }
                            vrstica_prej = vrstica;
                        }
                    }
                    sw.Close();

我希望有人会为此感到高兴。