Софт: CS Notes Tree 2003 (старое)

Число просмотров: 1 781 

Основное окно программы CS Notes TreeСегодня я хочу рассказать об ещё одном своём творчестве, которое родилось на волне всяких органайзеров и записных книжек, и одновременно как мой первый опыт в программировании на MS Visual C++. Сразу же обращаю внимание: прога не закончена и больше не поддерживается, и дописываться не будет! В то же время, основные функции она выполняет на ура и служит мне с тех времён верой и правдой.

Прога CS Notes Tree 2003 — очередная древовидная записная книжка с поиском по ключевым словам и тексту. Все записи и даные хранятся в одном единственном файле банка данных (на основе технологии OLE Compound Storage), который при сохранении переписывается частями, а не полностью. Внутренний формат редактора записей — RTF 2.0, что даёт полные возможности обычного WordPad’а из стандартной поставки программ Windows — шрифты, маркированные и нумерованные списки, цвета, выравнивание, вставка объектов и рисунков. Рассмотрим программу чуть подробнее (заявка на небольшой хэлп).

Писалась программа на основе какого-то древнего Notepad 2000 (np.exe), которым я пользовался для ведения своего личного дневника на компе. Удобно, записи составляешь деревом по годами и месяцам, да и пишешь-графоманишь (не было у меня тогда ещё своего блога ;) ;)). Беда была в том, что этот Notepad глючил и часто потирал вструктуру самого дерева. Да и написан был на старом Delphi, который я на дух не переношу из-за его многооконного интерфейса (где окна не докируются) и того что все программеры тупо копируют интерфейс этой же среды в своих творениях.

Дерево и свойства записей

Так как моя программа в первую очередь задумывалась для дневника (причём для носимого дневника — пришёл с флэшкой, поюзал, ушёл), то её структура несколько специфична. Имеется дерево, в котором можно мышью и перетаскиванием создавать структуру любого уровня вложенности (на сколько памяти системы хватит) записей. Перетаскивать можно как обычно — тогда запись вставляется в подзапись той, на которую тащим, или с нажатой клавишей Shift — тогда запись вставляется после той, на которую тащим.

Каждому элементу дерева соответствует название, даты и время создания, обновления и просмотра, а также самое главное: краткое описание и ключевые слова (индексы). Наделал скриншотов, попробую пояснить эти возможности подробнее. 

Окно свойств записи, вкладка Общие Окно свойств записи, вкладка Заметки Окно свойств записи, вкладка Ключевые слова

Раз у нас дневник — значит надо быстро находить какую-нибудь запись, если понадобится вспомнить какие-то события. Логично? Значит, создадим список ключевых слов (сейчас это зовётся модным словом «Тэги»), которые могут содержать, например, имена героев событий, мест или банальности типа «встреча», «отдых». А потом например по комбинации «Отдых»+»Украина» — находить записи, относящиеся к отдыху в Украине. До кучи у каждой записи имеется краткое описание, которое выводится во всплывающей подсказке к элементу дерева, если навести на него мышью. Тоже удобно и применялось как для красивого описания группы записей, так и для быстрого просмотра — возишь мышкой, читаешь подсказки.

Поиск по ключевым словам

Итак, чтобы найти инфу по ключевым словам, тыкаем меню «Сервис > Индексная информация», и нам вылазит окно со списком всех ключевых слов. При первом использованни поиска по индексам/ключевым словам будет предложено это самый список индексов создать. Дальше — тупее некуда. Находим нужные слова (действует поиск по первым буквам — ставим курсор на список слов и начинаем набирать начало слова), ставим галочки и снизу смотрим список записей, в которых эти слова прописаны.

Окно поиска по ключевым словам

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

Если щёлкнуть правой кнопкой до записи в дереве, то будет виден пункт «Ключевые слова». Это быстрый выбор слов из списка существующих и проиндексированных в банке. Достаточно поставить галочки и нажать «ОК». Список отображает только существующие слова (причём новые будут добавлены только после перестройки индекса), так что для ввода совершенного нового ключевого слова придётся заходить в свойства самой записи и писать его ручками.

Прямой поиск по текстам записей банка

Поиск по текстам записей банка вызывается через меню «Сервис > Поиск в банке» и имеет окно похожее на поиск по индексам.

Окно поиска по записям

Вверху окна можно указать диапазон поиска: весь банк, какая-то конкретная запись или группа записей и глубину поиска — только эта запись или её вложенные подзаписи.

Слова для поиска ищутся «как есть», без соблюдения окончаний и лексических форм. Ну например, «вата» будет так и искаться, без склонений «ватой», «ваты». Вводить слова надо через пробел, который по умолчанию считается как логическое AND — ищутся записи, в которых присутствуют все указанные слова. Для указанися других условий можно пользоваться прямым указанием отношений между словами при помощи AND и OR. Если нужно найти словесное выражение типа «вата моряка» — то его надо прямо так брать в кавычки. Тогда оно считается одним «словом» для поиска. Я не помню, действуют ли там у меня скобки… %)

О банке данных

Сам банк данных имеет окно свойств, сходное со стандартными свойствами документа в Windows, опять же основаннымим на OLE Property Set. Соответственно название и заметки к банку в его свойствах, а так же «Свойства пользователя» действуют при поиске файлов в Windows.

Окно свойств банка данных

И особо хочу отметить, что данные записей и паролей хранятся в файле банка данных В ОТКРЫТОМ ВИДЕ. Сделано это было для того чтобы быстро восстановить данные прямым чтением из файла, если упадёт прога или повредится сам файл. Защита самого файла от постороннего пользователя меня не беспокоила, так как он у меня хранился на зашифрованном разделе и мне было пофиг.

Внутренняя структура данных в файле

Записи при переходе между деревом сохраняются автоматически. Команда «Сохранить банк» сохраняет ключевые слова, свойства, структуру дерева. Опять же, сделано для того чтобы в случае чего текст записей всегда оставался и сохранялся независимо от падения программы.

Скачать творение можно вот по этой ссылке: CS-NotesTree-2003.rar. В архиве банк-пример, EXEшник программы и утилита дефрагментации банка (консольная).

Планировалось много. Например, сделать одно дерево, без разделения на пароли и прочую ерунду. Это у элемента дерева должен был быть разный тип — запись, папка записей или папка паролей. У записи должны были быть вложения (Attach), и альтернативный вариант текста — для высшей паранойи. При нажатии специальной кнопочки данные подменялиь и «чужой» читатель видел бы совершенно другой текст.

Ну и конечно делать мне это было лень. В принципе, продолжить я могу — но на это нужна собственная огромная мотивация. А прога — до сих пор работает и служит. Пользуйтесь безвозмездно, если кому-то сгодится.

Если вас заинтересовала информация из этого поста и вы хотите со мной связаться (или заказать Сборку щита / Консультацию), то пишите мне на почту info@cs-cs.net или звоните на +7-926-286-97-35. Отзываюсь на имя "Электрошаман".
Невнимательных, тупых и наглых продаванов и менеджеров я буду жёстко стебать, если они не заглянут в инфу про контакты для организаций, а скорее кинутся звонить.

0 Отзыв на “Софт: CS Notes Tree 2003 (старое)”


  • Нет комментариев

Оставить отзыв

Вы должны войти на блог, чтобы оставить комментарий.