如何在文本文件的特定行和列中实现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();
}
我知道代码是不对的,但这就是我想的。
解决问题。如果有人需要它。
示例文件:
1 23
2 1 1 23
2 1 1 23
需要获得额外的列和写tex文件:1 1
2 1
13
2 2
1 23
12
3
334
24
1
1 1
2 1
13
代码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();
我希望有人会为此感到高兴。