C#-查找/编辑/替换字符串

C#-查找/编辑/替换字符串,c#,replace,richtextbox,user-input,addition,C#,Replace,Richtextbox,User Input,Addition,我试图从文件中检索数据以更改它并替换旧数据 我有一个类似以下内容的文件: TEXT NEXT_TEXT 10.505 -174.994 0 TEXT NEXT_TEXT 100.005 174.994 90 TEXT NEXT_TEXT -10.000 -5.555 180 TEXT NEXT_TEXT -500.987 5.123 270 TEXT NEXT_TEXT 987.123 1.000 180 TEXT NEXT_

我试图从文件中检索数据以更改它并替换旧数据

我有一个类似以下内容的文件:

TEXT  NEXT_TEXT  10.505   -174.994 0  
TEXT  NEXT_TEXT  100.005  174.994  90  
TEXT  NEXT_TEXT  -10.000  -5.555   180  
TEXT  NEXT_TEXT  -500.987 5.123    270  
TEXT  NEXT_TEXT  987.123  1.000    180  
TEXT  NEXT_TEXT  234.567  200.999  90 
10.505
100.005
-10.000
-500.987
987.123
234.567
-174.994
174.994
-5.555
5-123
1.000
200.999
20.510
110.010
0.005
-490.982
997.128
224.572
-194.994
154.994
-25.555
-14.877
-19.000
180.999
TEXT  NEXT_TEXT  20.510   -194.994 0  
TEXT  NEXT_TEXT  110.010  154.994  90  
TEXT  NEXT_TEXT  0.005    -25.555  180  
TEXT  NEXT_TEXT  -490.982 -14.877  270  
TEXT  NEXT_TEXT  997.128  -19.000  180  
TEXT  NEXT_TEXT  224.572  180.999  90 
我试图抓住第3列和第4列,根据用户输入到两个
文本框中的内容更改数据。让我们将第三列标记为“X”,第四列标记为“Y”。这样,还有两个文本框,分别标记为“xTextBox”“yTextBox”。这些文本框允许用户输入数字,他们为每个文本框(X和Y)输入的数字(正数、负数和/或最多3位小数)将添加到“X”列值和“Y”列值中

现在,我正在使用这个代码(如下)剥离“X”和“Y”列,并将它们的值显示到不同的richtextbox标签为xRichTextBoxyRichTextBox

因此,xRichTextBox如下所示:

TEXT  NEXT_TEXT  10.505   -174.994 0  
TEXT  NEXT_TEXT  100.005  174.994  90  
TEXT  NEXT_TEXT  -10.000  -5.555   180  
TEXT  NEXT_TEXT  -500.987 5.123    270  
TEXT  NEXT_TEXT  987.123  1.000    180  
TEXT  NEXT_TEXT  234.567  200.999  90 
10.505
100.005
-10.000
-500.987
987.123
234.567
-174.994
174.994
-5.555
5-123
1.000
200.999
20.510
110.010
0.005
-490.982
997.128
224.572
-194.994
154.994
-25.555
-14.877
-19.000
180.999
TEXT  NEXT_TEXT  20.510   -194.994 0  
TEXT  NEXT_TEXT  110.010  154.994  90  
TEXT  NEXT_TEXT  0.005    -25.555  180  
TEXT  NEXT_TEXT  -490.982 -14.877  270  
TEXT  NEXT_TEXT  997.128  -19.000  180  
TEXT  NEXT_TEXT  224.572  180.999  90 
yRichTextBox如下所示:

TEXT  NEXT_TEXT  10.505   -174.994 0  
TEXT  NEXT_TEXT  100.005  174.994  90  
TEXT  NEXT_TEXT  -10.000  -5.555   180  
TEXT  NEXT_TEXT  -500.987 5.123    270  
TEXT  NEXT_TEXT  987.123  1.000    180  
TEXT  NEXT_TEXT  234.567  200.999  90 
10.505
100.005
-10.000
-500.987
987.123
234.567
-174.994
174.994
-5.555
5-123
1.000
200.999
20.510
110.010
0.005
-490.982
997.128
224.572
-194.994
154.994
-25.555
-14.877
-19.000
180.999
TEXT  NEXT_TEXT  20.510   -194.994 0  
TEXT  NEXT_TEXT  110.010  154.994  90  
TEXT  NEXT_TEXT  0.005    -25.555  180  
TEXT  NEXT_TEXT  -490.982 -14.877  270  
TEXT  NEXT_TEXT  997.128  -19.000  180  
TEXT  NEXT_TEXT  224.572  180.999  90 

代码:

更新后的
yRichTextBox
如下所示:

TEXT  NEXT_TEXT  10.505   -174.994 0  
TEXT  NEXT_TEXT  100.005  174.994  90  
TEXT  NEXT_TEXT  -10.000  -5.555   180  
TEXT  NEXT_TEXT  -500.987 5.123    270  
TEXT  NEXT_TEXT  987.123  1.000    180  
TEXT  NEXT_TEXT  234.567  200.999  90 
10.505
100.005
-10.000
-500.987
987.123
234.567
-174.994
174.994
-5.555
5-123
1.000
200.999
20.510
110.010
0.005
-490.982
997.128
224.572
-194.994
154.994
-25.555
-14.877
-19.000
180.999
TEXT  NEXT_TEXT  20.510   -194.994 0  
TEXT  NEXT_TEXT  110.010  154.994  90  
TEXT  NEXT_TEXT  0.005    -25.555  180  
TEXT  NEXT_TEXT  -490.982 -14.877  270  
TEXT  NEXT_TEXT  997.128  -19.000  180  
TEXT  NEXT_TEXT  224.572  180.999  90 

发生这种情况后,我试图用更新的值替换原始文件的第3列和第4列

  • 我目前正在获取文件中的值(“X”和“Y”),并将它们输出到分开的
    richtextbox
    ,但我不知道如何将这些值添加到从每个
    TextBox
    输入的值中。。。我该怎么做
  • 使用“TextBox”值计算
    RichTextBox
    值后,如何获取这些新值并将其添加到原始文件中
**这些值并不总是相同的,否则我将硬编码它们


因此,新文件如下所示:

TEXT  NEXT_TEXT  10.505   -174.994 0  
TEXT  NEXT_TEXT  100.005  174.994  90  
TEXT  NEXT_TEXT  -10.000  -5.555   180  
TEXT  NEXT_TEXT  -500.987 5.123    270  
TEXT  NEXT_TEXT  987.123  1.000    180  
TEXT  NEXT_TEXT  234.567  200.999  90 
10.505
100.005
-10.000
-500.987
987.123
234.567
-174.994
174.994
-5.555
5-123
1.000
200.999
20.510
110.010
0.005
-490.982
997.128
224.572
-194.994
154.994
-25.555
-14.877
-19.000
180.999
TEXT  NEXT_TEXT  20.510   -194.994 0  
TEXT  NEXT_TEXT  110.010  154.994  90  
TEXT  NEXT_TEXT  0.005    -25.555  180  
TEXT  NEXT_TEXT  -490.982 -14.877  270  
TEXT  NEXT_TEXT  997.128  -19.000  180  
TEXT  NEXT_TEXT  224.572  180.999  90 

我建议使用结构化文本文件解析器来解析和重写文件


Microsoft.VisualBasic.FileIO
命名空间中有一个。这是一个普通的.NET程序集,因此您可以在代码中引用它,并在C#中使用。

您知道如何读取文件,但听起来好像您只是将它们直接放入文本框中。我将创建一个对象来表示一条线(带有x、y和最后一列的内容)。当您读入它们时,创建一个对象列表。要显示它们,请循环并选择每个x(如果使用4.0,可以使用linq轻松完成),每个y分别显示。若要更新,请循环并向每个对象添加适当的编号。然后保存,只需再次写出每个对象


编辑:在仔细查看代码之后,您将保留一个X列表和一个Y列表。创建我提到的对象,只保留这些对象的列表。

保存日期之前,请确保创建要保存的数据字符串,然后使用textwriter或streamwriter将所有内容再次保存到文件中。我认为你不能只更改文件的一部分并保存它