CS-CS.Net: Лаборатория Электрошамана

Сразу же обращаю внимание: прога не закончена и больше не поддерживается, и дописываться не будет! В то же время, основные функции она выполняет на ура и служит мне с тех времён верой и правдой. Прога 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), и альтернативный вариант текста — для высшей паранойи. При нажатии специальной кнопочки данные подменялись, и «чужой» читатель видел бы совершенно другой текст. Ну и конечно делать мне это было лень. В принципе, продолжить я могу — но на это нужна собственная огромная мотивация. А прога — до сих пор работает и служит. Пользуйтесь безвозмездно, если кому-то сгодится. Проекту исполнилось 16 лет! Поддержать проект материально, проспонсировать проекты Автора или сделать ему подарок можно на этой странице: «Донаты и Спонсорство, Список Желаний».

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

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