@nano_e_t_4

Как распарсить текстовый формат файла?

Всем привет

Подскажите пожалуйста, как распарсить такой формат файла:

string:
        substring1
        substring2
        substring3
        substring4
        substring5
string1:
        substring1-1
        substring2-1
        substring3-1
        substring4-1
        substring5-1
  • Вопрос задан
  • 233 просмотра
Решения вопроса 1
Это у вас случайно не YAML?
Если да, то https://godoc.org/gopkg.in/yaml.v2
Какое расширение файла?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@nrgian
1 цикл и 1 флаг и одно сравнительно сложное условие (regexp`ом будет удобно).

Сбрасываем флаг в исходное состояние (в Go достаточно его объявить, там автоматическая инициализация переменных)
Цикл такой - читаем, пока файл не закончился

Если состояние исходное, то сравниваем строку на соответствие правилу "начало с начала строки, а конец это двоеточие" (удобен будет regexp)
Если строка такая, то переходим во второе состояние, а найденная строка будет новой веткой дерева.
Если строка не такая, то ошибка

Если состояние второе, то сравниваем на то же самое условие
Если соответствует, то возвращаемся в первое состояние
Если не соответствует, то помещаем текущую строку в текущую ветку дерева.

не хочется костылить

Это рядовая программисткая задача.
Для этого не нужно никаких библиотек (кроме штатных).
Тут нет никаких хитрых алгоритмов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы