Разбор отформатированного текстового файла
У меня есть текстовый файл, который я получаю его содержимое через форматированную строку, которая выглядит следующим образом:
Таблица OperatorPoints \Р\nHEADING\Р\Имя_экземпляра nDGName OP1_X OP1_Y OP2_X OP2_Y\Р\nDATA\Р\Ноттингем, ng1[1,1] П1[1,1] 251.8419 -804.6282 768.8362 -290.5563\Р\Ноттингем, ng1[1,1] умереть[1,1] 357.8950 -714.6857 652.0683 -395.6490\Р\усилиям nend смогла
Форматирование в текстовом файле выглядит следующим образом
TABLE OperatorPoints HEADING DGName InstanceName OP1_X OP1_Y OP2_X OP2_Y DATA G1[1,1] L1[1,1] 251.8419 -804.6282 768.8362 -290.5563 G1[1,1] valve[1,1] 357.8950 -714.6857 652.0683 -395.6490 END
Содержимое мое различается, однако заголовки (DGName, InstanceName и т. д.) всегда одинаковы.
Меня интересуют только значения, и мне нужно уметь читать каждое значение и хранить его в объекте класса. В качестве значений содержимого мой пример vary вместо G1[1,1] может быть более длинный текст, и поэтому для других ячеек. Там также могут отсутствовать ячейки, например 251.8419 в OP1_X отсутствует. То,что я имею в виду, - это иметь словарь <string, int>, где я помещаю заголовки и ширину "ячейки", чтобы затем прочитать значения, основанные на точном местоположении.
Что я уже пробовал:
Прямо сейчас я отделяю каждую строчку
string[] result = myString.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries);затем используйте foreach для каждой строки. Но недостаток если это пропущенное значение все остальные значения для этой строки будут двигаться влево таким образом я получу пропущенное значение в последнем столбце
Richard MacCutchan
Не удаляйте пустые записи.