При закрытии подписчики были переданы в рассылку "Новый проект Юрия Мороза" на которую и рекомендуем вам подписаться.
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Информационный Канал Subscribe.Ru |
Всем доброго времени!
Как я уже написал, новую версию 1.2 программы можно загрузить отсюда:
http://blackbox.mailru.com/program/download.htm
Перед началом переделки программы встал вопрос - как работать с документами, какой выбрать подход - однодокументный ("SDI") или многодокументный ("MDI")? В предыдущей версии была работа только с одним списком слов. В моих ближайших планах - добавить "фильтрацию" результатов, т.е. возможность вычеркивать из результатов слова, которые есть в списке стоп-слов. (Это слова, которые часто встречаются в тексте, но обычно выполняют служебные функции и не имеют глубокой смысловой нагрузки. Обычно к ним относят артикли, предлоги, междометия, вводные слова, наречия и т.д.) Эта операция требует работы с двумя документами. Дальше хочу ввести операции над двумя списками слов, чтобы получать их пересечение, объединение и разность. Чтобы это было не сложно добавить я и решил делать программу как "MDI-приложение".
Для многодокументного приложения нужны команды для расположения окон на экране (они автоматически создаются в меню "Window"), а также команды в меню "Файл" ("File"): "Новый" ("New"), "Открыть" ("Open"), "Сохранить все" ("Save All") и "Закрыть все" ("Close All").
Документ - это набор записей. В каждой записи - строка и число (смотри http://blackbox.mailru.com/issue/9.htm). Как отображать такой документ на экране? В предыдущей версии увидеть можно было только результат работы программы - текстовый файл с отсортированным набором записей. В новой версии такой фокус не пройдет - нужна возможность редактирования записей. Наиболее естественный компонент для отображения - это TStringGrid.
Очевидно, что данные удобнее видеть отсортированными. Возможны две сортировки - по алфавиту (слово) и по убыванию/возрастанию (число). В предыдущей версии вид сортировки выбирался перед началом обработки. Здесь я решил выдавать пользователю оба варианта сразу - поставить два StringGrid. Можно показывать только один из них (или ни одного :). Возникла тут еще небольшая задачка - как изменять их ширину при изменении размера окна документа.
Кроме самого списка слов, пользователю может понадобиться общее количество и количество разных слов в обработанных текстах. Эти числа отображаются в двух TLabel, которые лежат на TPanel, которую тоже можно убрать с экрана. Итого, в меню "View" включил четыре команды для управления видом данных.
Какие операции и виды действий над документами должны быть в программе?
Очевидно, что операции можно разделить и по "объекту воздействия":
В предыдущей версии программы были реализованы только действия над всем списком записей.
Что есть в новой версии.
Начнем с добавления текста. Новый текст можно взять из файла на диске или из какой-то другой программы - через буфер обмена. Для первого (и главного) способа предназначена команда "Добавить текст" ("Add Text") в меню "Файл" ("File"). При этом появляется диалоговое окно выбора файла, в котором надо указать нужный текстовый или html-файл. Второй способ: по команде "Вставить текст" ("Paste Text") из меню "Правка" ("Edit"), появляется окошко с текстовым содержимым буфера и если пользователь нажимает "Да" ("Ok"), то слова из этого текста добавляются к списку. В любом случае работа идет с документом из активного дочернего окна. Если ни одного окна нет, то перед командой "Добавить текст" автоматически выполняется команда "Новый" ("New") из меню "Файл" ("File").
Для добавления слова, по команде "Добавить слово" ("Add Word") из меню "Правка" ("Edit"), появляется окошко для ввода слова и его количества.
Операция удаления. Для удаления одного слова предусмотрена команда "Удалить слово" ("Delete Word") из меню "Правка" ("Edit"). После подтверждения, удаляется текущая запись (на которой находится курсор в таблице StringGrid). После этого, как и после других операций, оба StringGrid перерисовываются.
Все операции удаления групп слов выделены в отдельное подменю "Удалить" ("Delete") в меню "Правка" ("Edit"). Сейчас есть пять вариантов удаления слов.
Правка отдельной записи сделана в виде двух различных команд из меню "Правка" ("Edit"):
Разница в том, что когда меняется слово нужно не просто пересортировать список, но и проверять - может новое слово уже есть в списке. Конечно, можно было сделать и одну команду, а после нее проверять - изменилось ли слово.
Из операций для обработки всего массива записей сейчас реализована только одна: объединить похожие слова ("Group Similar Words") в меню "Правка" ("Edit"). Она позволяет объединить слова, которые отличаются только своими окончаниями. Другая важная операция - удаление стоп-слов еще не реализована. Операции с двумя списками слов тоже появятся в следующих версиях.
Другие операции. Есть операция "Найти/Перейти к слову" ("Find / Go to Word") в меню "Правка" ("Edit"), - так легче находить нужное слово в больших списках, особенно когда нужно найти его в сортировке по количеству.
Есть возможность получить результат в текстовом виде, как это было в предыдущей версии - команда "Внешний просмотр" ("External Viewer") в меню "Вид" ("View"). (Мне уже написали, что обычно эта команда выдает ошибку - пытается создавать файлы с нехорошими именами - в следующей версии исправлю.) В том же меню еще две команды: "Статистика" ("All statistics") для просмотра и сравнения количества слов во всех открытых окнах, "История" ("History") - показывает список основных операций, которые были выполнены над активным списком.
Начал, но еще не сделал меню "Опции" ("Options"). В меню "Помощь" ("Help") пока две команды - показать информацию о программе ("About") и пойти на сайт ("Goto WWW page").
Функциональность программы реализована на трех уровнях (в трех модулях):
Есть еще несколько вспомогательных форм - диалоговых окон.
Какие возникали сложности:
А сейчас можно пойти на http://blackbox.mailru.com/program/download.htm скачать себе "Wordstat" v. 1.2 (размер 200Кб) и попробовать его в деле. А потом написать мне письмо с критикой и замечаниями.
Тема следующего выпуска: Выбор Домена-2.
Ведущий проекта - Алексей.
Есть что сказать? пишите сюда:
blackbox@mailru.com
Все, что вы напишете, может быть использовано для вас в рассылке
(в том числе ваша подпись под письмом).
Если вы против публикации своего письма, укажите тему письма "секретно" или "не публиковать".
По вопросам идеология проекта - смотри идеи Школы своего Дела
(ШСД).
Рекомендую:
лучшие рассылки по бизнесу и развитию личности .
Архив выпусков рассылки находится здесь
http://blackbox.mailru.com
http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу
В избранное | ||