ОБЪЯСНЕНИЕ КОДА НИЖЕ:
- Я загружаю файл .txt и создаю список для его сохранения.
- Цикл
while
сохраняет весь текств список. - Я создаю еще 3 списка для хранения различных значений.
- Я использую REGEX для сопоставления для чисел, похожих на "111.111".
- Если это совпадениев строке сгруппируйте его как «X» и «Y».
- Добавьте каждый из сгруппированных элементов в новые списки, созданные выше (их 3).
- Используйте дополнение наЗначения «X» и «Y» с использованием входного значения
TextBox
. Вывести значения StringBuilder
в RichTextBoxes
.
private void calculateXAndYPlacement()
{s
// Reads the lines in the file to format.
var fileReader = File.OpenText(filePath + "\\Calculating X,Y File.txt");
// Creates a list for the lines to be stored in.
var fileList = new List<string>();
// Adds each line in the file to the list.
var fileLines = ""; #UPDATED @Corey Ogburn
while ((fileLines = fileReader.ReadLine()) != null) #UPDATED @Corey Ogburn
fileList.Add(fileLines); #UPDATED @Corey Ogburn
// 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 }));
// Add the results to the lists.
xResult.Add(xValue);
yResult.Add(yValue);
// Calculate the X & Y values (including the x & y displacements)
double doubleX = double.Parse(xValue);
double doubleXValue = double.Parse(xDisplacementTextBox.Text);
StringBuilder sbX = new StringBuilder();
sbX.AppendLine((doubleX + doubleXValue).ToString());
double doubleY = double.Parse(yValue);
double doubleYValue = double.Parse(yDisplacementTextBox.Text);
StringBuilder sbY = new StringBuilder();
sbY.AppendLine((doubleY + doubleYValue).ToString());
calculatedXRichTextBox.AppendText(sbX + "\n");
calculatedYRichTextBox.AppendText(sbY + "\n");
}
});
}
СЕЙЧАС ::: То, что я пытаюсь сделать, это взять эти новые значения, которые есть в calculatedXRichTextBox
, calculatedYRichTextBox
и Заменить старые значения (в fileList) и вывод их для переопределения calculatedXRichTextBox
и calculatedYRichTextBox
.
SO, у меня есть следующие значения:
(исходный файл)
TEXT TEXT 227.905 203.244 180
TEXT TEXT 242.210 181.294 180
TEXT TEXT 236.135 198.644 90
(вырезанные значения "X"и "Y" - в 2 разных списках)
227.905 203.244
242.210 181.294
236.135 198.644
(вычисленное значение прибавляет "10" к "X" и "20" к "Y""- поместив их в 2 разные RichTextBoxes
)
237.905 223.244
252.210 201.294
246.135 218.644
(ЭТО ТО, ЧТО Я ХОЧУ ЗАКОНЧИТЬ - оригиналфайл + вычисленные значения, заменяющие старые значения)
TEXT TEXT 237.905 223.244 180
TEXT TEXT 252.210 201.294 180
TEXT TEXT 246.135 218.644 90
ВОПРОСЫ: