Программа для обработки списков фраз в файле
Здравствуйте!
Требуется программа для обработки списков фраз в файле.
1. Имеется файл "Категории.txt" со структурой категорий, вида:
Швейная галантерея/Принадлежности для вязания/Аксессуары для вязания
Швейная галантерея/Фурнитура для штор
Швейная галантерея/Фурнитура для штор/Подхваты для штор
Швейная галантерея/Фурнитура для штор/Крючки, зажимы, кольца
Швейная галантерея/Фурнитура для штор/Шторная лента
Одежда и обувь/Мужская одежда/Футболки, майки/Футболки поло
Швейная галантерея/Фурнитура для нижнего белья
Швейная галантерея/Фурнитура для нижнего белья/Косточки для бюстгальтеров
Швейная галантерея/Фурнитура для нижнего белья/Застёжки
Мебель/Мебель для прихожей/Вешалки в прихожую
Одежда и обувь/Детская одежда/Одежда для спорта
Одежда и обувь/Детская одежда/Одежда для спорта/Одежда для гимнастики
Красота и здоровье/Гигиена/Ватная продукция/Ватные диски
2. Загружаем файл в программу через диалоговое окно, при загрузке удаляем все спецсимволы и знаки, прописанные в файле настроек программы - "ini.txt" (запятые, спецсимволы и т.д.)
3. При загрузке, в первую колонку выводим все уникальные варианты фраз между ">" и "/", между "/" и "/", между "/" и "<:< b="">
Швейная галантерея
Принадлежности для вязания
Аксессуары для вязания
Фурнитура для штор
Подхваты для штор
и т.д.
Сортировку вывода фраз в первой колонке производим, в зависимости с уровнем вложенности категории, начиная с максимально вложенных, например:
Из строки: Одежда и обувь/Детская одежда/Одежда для спорта/Одежда для гимнастики выводим в колонку сначала "Одежда для гимнастики", а категории первого уровня, например, "Одежда и обувь" выводим в конце списка.
Эту часть строк: в колонку не выводим.
4. При переходе по фразам в первой колонке (при помощи стрелок "вверх"-"вниз"), ВСЕ категории из файла "Категории.txt" имеющие вхождение фразы из первой колонки, выводим в виде древовидной структуры:
Например, список:
Одежда и обувьДетская одежда/Одежда для спорта
Одежда и обувь/Детская одежда/Одежда для спорта/Одежда для гимнастики
Одежда и обувь/Детская одежда/Одежда для спорта/Спортивные брюки для мальчиков
Одежда и обувь/Детская одежда/Одежда для спорта/Спортивные брюки для девочек
Детские товары/Детская одежда и обувь/Одежда для спорта
Детские товары/Детская одежда и обувь/Одежда для спорта/Спортивные брюки для мальчиков
Детские товары/Детская одежда и обувь/Одежда для спорта/Спортивные костюмы для мальчиков
Детские товары/Детская одежда и обувь/Одежда для спорта/Спортивные костюмы для девочек
Детские товары/Детская одежда и обувь/Одежда для спорта/Одежда для гимнастики
Одежда и обувь/Детская одежда/Одежда для спорта/Одежда для фигурного катания
Одежда и обувь/Детская одежда/Одежда для спорта/Одежда для фигурного катания/Кофты, толстовки, водолазки
Детские товары/Детская одежда и обувь/Одежда для спорта/Спортивные брюки для девочек
Одежда и обувь/Детская одежда/Одежда для спорта/Одежда для гимнастики/Гимнастические купальники
Детские товары/Детская одежда и обувь/Одежда для спорта/Одежда для гимнастики/Гимнастические купальники
Одежда и обувь/Детская одежда/Одежда для спорта/Одежда для гимнастики/Гимнастические костюмы и комплекты
Детские товары/Детская одежда и обувь/Одежда для спорта/Одежда для гимнастики/Гимнастические костюмы и комплекты
Одежда и обувь/Детская одежда/Одежда для спорта/Одежда для гимнастики/Лосины
Детские товары/Детская одежда и обувь/Одежда для спорта/Одежда для гимнастики/Лосины
Выводим во второй колонке в таком виде:
Одежда и обувь
Детская одежда
Одежда для спорта
Одежда для гимнастики
Гимнастические купальники
Гимнастические костюмы и комплекты
Лосины
Спортивные брюки для мальчиков
Спортивные брюки для девочек
Одежда для фигурного катания
Кофты, толстовки, водолазки
******************************************************************* - разделитель
Детские товары
Детская одежда и обувь
Одежда для спорта
Спортивные брюки для мальчиков
Спортивные костюмы для мальчиков
Спортивные костюмы для девочек
Спортивные брюки для девочек
Одежда для гимнастики
Гимнастические купальники
Гимнастические костюмы и комплекты
Лосины
5. Перемещения по колонкам производятся при помощи стрелок "Вправо"-"Влево", внутри колонок - стрелками "Вверх" - "Вниз".
6. При нахождении курсора во второй колонке на строке, например: "Спортивные брюки для мальчиков", при нажатии "Enter" или двойной клик мыши (оба варианта), активируем режим редактирования строки.
Возможность копирования фразы из строки "Ctrl+C" и вставки в строку "Ctrl+V"
После правки строки, например, новое значение - "Спортивные брюки для крутых мальчиков", завершаем режим редактирования фразы - "Ctrl+S"
После сохранения фразы во второй колонке, автоматически перезаписываются все значения строк в исходном локальном файле "Категории.txt" в соответствии со структурой исправленной категории/подкатегории.
Обработанная строка дерева категории подсвечивается как отредактированная.
Подсветка запоминается программой, чтобы при обновлении данных в окнах по клавише "F5", данная подсветка сохранялась.
Обновление данных в окнах программы - по клавише "F5"
Удаление всей ветки категории при положении курсора на корневой категории - "DELETE" с всплывающим диалоговым окном подтверждения удаления (во избежании случайного нажатия "DELETE").
Удаление промежуточной категории при положении курсора на строке категории - "DELETE" с всплывающим диалоговым окном подтверждения удаления (во избежании случайного нажатия "DELETE").
Например, после удаления промежуточной категории "Одежда для спорта", мы должны получить в колонке и в файле "Категории.txt" из структуры категории:
Одежда и обувь
Детская одежда
Одежда для спорта
Одежда для гимнастики
Гимнастические купальники
Гимнастические костюмы и комплекты
Лосины
Спортивные брюки для мальчиков
Спортивные брюки для девочек
Одежда для фигурного катания
Кофты, толстовки, водолазки
такую структуру:
Одежда и обувь
Детская одежда
Одежда для гимнастики
Гимнастические купальники
Гимнастические костюмы и комплекты
Лосины
Спортивные брюки для мальчиков
Спортивные брюки для девочек
Одежда для фигурного катания
Кофты, толстовки, водолазки
Общее количество строк в локальном файле "Категории.txt" - 24 000 строк.
При загрузке сюда ТЗ нарушается структура.
Полное ТЗ с правильной структурой отображения категорий - во вложенном файле.