Основываясь на вашем примере, у вас есть набор различных вложенных подформатов, которые по отдельности очень легко анализируются. Что может быть ошеломляющим, так это огромное количество форматов и тот факт, что они могут быть вложены по-разному.
На самом низком уровне у вас есть набор значений, разделенных пробелами, в одной строке. Эти линии объединяются в блоки, и то, как блоки объединяются и вкладываются друг в друга, является сложной частью. Этот тип вывода предназначен для чтения человеком и никогда не предназначался для «восстановления» в машиночитаемой форме.
Во-первых, я хотел бы связаться с автором программного обеспечения и узнать, доступен ли альтернативный выходной формат, такой как XML или CSV. Если все сделано правильно (то есть не только в формате печати, обернутом в неуклюжий XML или с запятыми, заменяющими пробелы), с этим будет намного проще справиться. Если это не удастся, я попытаюсь составить иерархический список форматов и способов их размещения. Например,
ESTIMATED SAMPLE STATISTICS
начинает блок
- Внутри этого блока
MEANS/INTERCEPTS/THRESHOLDS
начинается вложенный блок
- Следующие две строки представляют собой заголовки столбцов.
- За ней следует одна (или несколько?) Строк данных с заголовком строки и значениями данных.
И так далее. Если вы подойдете к каждой из этих проблем по отдельности, вы обнаружите, что это утомительно, но не сложно. Думайте о каждом из вышеперечисленных шагов как о модулях, которые проверяют ввод, чтобы увидеть, совпадает ли он, и если он совпадает, затем вызывают другие модули для дальнейшего тестирования вещей, которые могут произойти «внутри» блока, с возвратом, если вы дойдете до чего-то, что не соответствует ' t соответствует тому, что вы ожидаете (кстати, это называется «рекурсивный спуск»).
Обратите внимание, что вам все равно придется сделать что-то подобное, чтобы создать версию данных в памяти («модель данных»), с которой вы можете работать.
person
Jim Garrison
schedule
20.08.2010