Если у меня есть RichTextBox
, который загружен из файла, связанного с:
TEXT MORETEXT 10.505 100.994 0
TEXT MORETEXT -5.132 -12.994 90
TEXT MORETEXT 100.001 -8.994 270
и TextBox
, которые содержат все, что пользователь вводит в текстовое поле. Допустим, пользователь вводит "10.005" .
У меня вопрос , как мне взять это значение и добавить в столбец 3rd , содержащий значения 10.505, -5.132, 100.001 . Как только оно будет добавлено, я хотел бы взять значение и заменить старое значение в строке. SO Обновленный RichTextBox
будет выглядеть следующим образом.
TEXT MORETEXT 20.510 100.994 0
TEXT MORETEXT 4.873 -12.994 90
TEXT MORETEXT 110.006 -8.994 270
ПРЯМО СЕЙЧАС Я могу удалить строки из RichTextBox
, используя этот код:
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");
}
});
}
Чтобы получить значения в xRichTextBox
, выглядящие так:
10.505
-5.132
100.001
и yRichTextBox
в виде:
100.994
-12.994
-8.994
Но я не знаю, как превратить эти значения в значения, для которых можно использовать добавление ...
EDIT:
Я обдумал это еще немного ... Сейчас я использую этот код (ниже), чтобы попытаться выполнить то, что мне нужно. Это только для "X" (3-й столбец) .
ОДНАКО ЭТОТ КОД НЕ РАБОТАЕТ (он объединяет пользовательский ввод в конец xRichTextBox
вместо математического добавления его в каждую строку ..)
xDisplacementTextBox
- это пользовательский ввод, а xRichTextBox
- это извлеченные значения из основной строки.
StringBuilder stringBuilder = new StringBuilder();
string[] Lines = xRichTextBox.Text.Split('\n');
double d = double.Parse(xDisplacementTextBox.Text);
for(int i = 0; i < Lines.Length; ++i)
{
string newThing = double.Parse((Lines[i]) + d).ToString();
stringBuilder.AppendLine(newThing);
}
xRichTextBox.Text = stringBuilder.ToString();
Это также не позволяет мне вводить значения с десятичными значениями (т. Е. 50,005) ..