Решения задачи с Ulearn

Практика «Парсер таблиц»

Скачайте проект TableParser

В классе FieldsParserTask реализуйте метод ParseLine, для которого вы создавали тесты в предыдущей задаче.

Создайте модульные тесты на это решение и перенесите разработанные в прошлой задаче тестовые случаи в модульные тесты.

При вычленении из строки фрагментов приходится отслеживать 2 вещи:

  1. Проинтерпретированное значение, соответствующее фрагменту. Например, значение фрагмента "a\tb" это три символа: a, символ табуляции и b, хотя сам фрагмент имеет длину 6 символов.
  2. Позицию фрагмента в строке.

Для этого удобно завести свой тип и хранить там эту информацию. Этот тип уже создан для вас — найдите в проекте класс Token и используйте его. Фрагменты, выделяемые из текста часто называют токенами или лексемами. Мы дальше будем называть их токенами.

Иллюстрация поясняющая семантику свойств класса Token для при анализе текста:

  • Position — номер символа в строке, с которого начинается запись токена.
  • Length — количество символов, которое занимает токен в строке.
  • Value — это проинтерпретированное значение токена. То есть «очищенное» от ненужных кавычек и слэшей.

Решение получится более простым, если ваши вспомогательные методы будут использовать этот класс в качестве возвращаемого значения. В частности, обратите внимание на метод GetIndexNextToToken в классе Token. Он возвращает позицию, с которой нужно продолжить анализ строки.

В качестве вспомогательных методов могут быть методы, читающие разные виды полей, а также метод пропускающий пробелы между полями.

Стоимость решения этой задачи всего 100 рублей, купи решения у меня 🙂

 

Обновлено: 25.11.2018 — 16:11

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.