Я пытаюсь извлечь данные из файла, чтобы изменить его и заменить старые данные.
У меня есть файл, который выглядит примерно так:
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
Я пытаюсьвозьмите 3-й и 4-й столбцы , чтобы изменить данные в зависимости от того, что пользователь вводит в два TextBoxes
.Давайте обозначим 3-й столбец "X" и 4-й столбец "Y" .При этом есть также два текстовых поля, помеченные "xTextBox" и "yTextBox" .Эти текстовые поля позволяют пользователю вводить числа и число, которое они вводят в (положительное, отрицательное и / или десятичное число до 3 десятичных знаков) для каждого текстового поля (X и Y) будет ДОБАВЛЕНО к значениям столбца "X" и значениям столбца "Y".
Сейчас я использую этот КОД (ниже) для удалениястолбцы «X» и «Y» и отображают их значения в различных RichTextBoxes
помеченных xRichTextBox и yRichTextBox .
Итак, xRichTextBox выглядит следующим образом:
10.505
100.005
-10.000
-500.987
987.123
234.567
и yRichTextBox выглядит так:
-174.994
174.994
-5.555
5-123
1.000
200.999
КОД:
private void calculateXAndYPlacementTwo()
{
// Reads the lines in the file to format.
var fileReader = File.OpenText(filePath);
// Creates a list for the lines to be stored in.
var fileList = new List<string>();
// Adds each line in the file to the list.
while (true)
{
var line = fileReader.ReadLine();
if (line == null)
break;
fileList.Add(line);
}
// Creates new lists to hold certain matches for each list.
var xyResult = new List<string>();
var xResult = new List<string>();
var yResult = new List<string>();
// Iterate over each line in the file and extract the x and y values
fileList.ForEach(line =>
{
Match xyMatch = Regex.Match(line, @"(?<x>-?\d+\.\d+)\s+(?<y>-?\d+\.\d+)");
if (xyMatch.Success)
{
// grab the x and y values from the regular expression match
String xValue = xyMatch.Groups["x"].Value;
String yValue = xyMatch.Groups["y"].Value;
// add these two values, separated by a space, to the "xyResult" list.
xyResult.Add(String.Join(" ", new[]{ xValue, yValue }));
// Adds the values into the xResult and yResult lists.
xResult.Add(xValue);
yResult.Add(yValue);
// Place the 'X' and 'Y' values into the proper RTB.
xRichTextBox.AppendText(xValue + "\n");
yRichTextBox.AppendText(yValue + "\n");
}
});
}
SO например, если пользователь вводит в "10.005" для xTextBox
и "- 20" для yTextBox
обновляется xRichTextBox
будет выглядеть следующим образом:
20.510
110.010
0.005
-490.982
997.128
224.572
, а updated yRichTextBox
будет выглядеть так:
-194.994
154.994
-25.555
-14.877
-19.000
180.999
После того, как это произойдет, Я пытаюсь заменить 3-й и 4-й столбцы исходного файла обновленными значениями.
- В настоящее время я получаю значения ("X" и "Y")в файл и вывод их для разделения
RichTextBoxes
, но я не знаю, как добавить эти значения к значениям, введенным в каждый TextBox
... Как я могу это сделать? - После
RichTextBox
значения рассчитываются со значениями TextBox, как я могу взять эти новые значения и добавить тПодшить к оригинальному файлу?
** Эти значения не всегда одинаковы, иначе я бы их жестко закодировал.
Итак,новый файл будет выглядеть так:
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