PureBasic


Quotation

Назначение

Цитатник - быстро сохраняет выделенные тексты.


Работа с программой


Выделить текст и вызвать горячую клавишу Ctrl+J (по умолчанию). Выделенное сохранится.


Параметры ini-файла

[set]
HotkeyCode=586 ; код горячей клавиши
MaxSize=500 ; максимальный размер файла в кб. Если превысит то старое копируется в новый файл с датой, а текущий очищается и пишется снова
Preview=1 ; предпоказ фрагмента перед сохранением и выбор секции сохранения.
Clipboard=0 ; если 0 то захват выделенного, если 1, то захват буфера обмена.
ClrFnt=AAAAAA ; Цвет текста в предпросмотре. Можно указывать 1, 2, 3, 6 шестнадцатеричных символа.
ClrBG=3F3F3F ; Цвет фона в предпросмотре
Signal=C:\Windows\media\Windows - восклицание.wav ; сигнал успешного сохранения записи

[Quote] ; все секции кроме [set] являются разделом сохранения показываемый в предпоказе для выбора сохранения. То есть здесь задаётся имя.
mode=1 ; режим сохранения. "=1" - сохранения в один файл
path=Text\Quotation.txt ; путь к файлу сохранения цитат. Путь может быть пустым (создаётся в корне), относительным (от корня) и абсолютным.
separator=\r\n\r\n=== %d %t ====\r\n\r\n ; разделитель между цитатами при добавлении новой цитаты. Здесь используются escape-последовательности, где \r\n - перенос, а также переменные даты %d и времени %t
wstr=0 ; кодировка файла, 0 - UTF-8, 1 - Ascii, 2 - Unicode
bom=1 ; Добавляет метку BOM.
edit=0 ; Если 1, то при использовании предпросмотра можно редактировать текст и сохранятся будет из окна редактора. Флаг индивидуальный.
TitleBtwn=<title>_|_<\title>_|_\r\n\r\n ; Добавляет заголовок взяв из содержимого между тегами. Здесь _|_ является разделителем полей.

[PureBasic]
mode=2 ; режим сохранения. "=2" - сохранения в отдельные файлы
folder=%yyyy.%mm ; это способ задания папки, в данном случае год и месяц. Если будет указан день, то будут создаваться папки каждый день. Также можно указывать часы, минуты (ii, так как mm это месяцы), секунды
path=PureBasic ; путь где будут генерироваться папки и в них файлы. Путь может быть пустым (создаётся в корне), относительным (от корня) и абсолютным.
Ext=pb ; расширения файлов, чтобы удобно было открывать, если это куски кода.
wstr=0 ; кодировка файла, 0 - UTF-8, 1 - Ascii, 2 - Unicode
bom=1 ; Добавляет метку BOM. Например для html-файлов метка BOM не нужна, при этом кодировка UTF-8 и указывается в html-файле.
edit=0 ; Если 1, то при использовании предпросмотра можно редактировать текст и сохранятся будет из окна редактора. Флаг индивидуальный.
genname=0 ; генератор имени файла. 0 - запрос имени, 1 - дата и время является именем файла, 2 - счётчик от 1 и далее. Если указано имя уже существующего файла при =0, то будет добавлен индекс, например name_1, name_2 и т.д.

Чтобы применить настройки после редактировании ini-файла нужно перезапустить программу.
В режиме mode=2 имя файла указывается в окне ввода имени, а в будущем можно придумать генератор имён по правилам, например по тексту из контента или по времени создания или счётчик 1, 2, и т.д. ввести переменную счётчика %i

Можно создать несколько секций с режимами 1 и 2, но со своими путями, расширениями файлов и т.д. Например можно сделать ещё раздел для AutoIt3 или CMD с режимом 2 и тогда фрагменты кода AutoIt3, CMD и PureBasic будут сохранятся в свои папки, а не в общую кучу.

Работа с программой

Имеется 2 способа сохранения текстовых фрагментов:
1) в один файл каждый раз добавляя в конец.
2) каждый фрагмент в отдельный файл.
За это отвечает параметр mode=

В ini-файле можно создавать сколько угодно секций, каждая из которых будет являться индивидуальной настройкой сохранения файла. Исключение - секция [set], которая содержит общие настройки для программы. Взависимости от режима mode= секция имеет разный набор параметров. Так как mode=2 является способом сохранения в отдельные файлы, то она имеет параметры folder для маски генерируемой папки по дате, а параметр path является папкой, в которой будут генерироваться папки folder, а в них файлы-фрагменты. Режим mode=1 имеет основной параметр path, который указывает путь к файлу, в который будут сохраняться фрагменты. Остальные параметры по умолчанию выбраны наилучшим образом и в большинстве добавлять не обязательно.

Предпросмотр

Параметр Preview=1 определяет предпросмотр фрагмента перед его сохранением и выбор секции сохранения. В этом окне работают горячие клавиши Enter (ОК) и Esc (Отмена), а стрелками вверх/вниз выбрать секцию сохранения. После первого выбора секции выбор остаётся всегда на этой секции и достаточно нажимать только Enter. Если нет необходимости в предпросмотре, то задаём флаг 0 в параметре и сохранение будет происходить в первую секцию всегда. При этом чтобы контролировать успешное сохранение добавлен параметр Signal=, чтобы воспроизводить указанный звук при успешном сохранении фрагмента. Эта функция работает в любых режимах, даже с предпросмотром. Если используется файл из папки "C:\Windows\media\" это может оказаться жёсткой ссылкой и тогда нужно открыть свойства файла и на вкладке "Свойства ссылки" копировать другой путь.
Для удобства добавлены цвета текста (ClrFnt=) и фона (ClrBG=) в окне предпросмотра. Можно указывать цвета сокращённо, например "A" преобразуется в "AAAAAA", "3F" преобразуется в "3F3F3F", "F98" преобразуется в "FF9988"

Прочее

Пункт меню "Показать настройки" в трее позволяет изменить горячую клавишу.

При вызове горячей клавиши имитируется нажатие Ctrl+Insert (аналог Ctrl+C), то есть выделенный текст попадает в буфер обмена, а потом считывается из него и сохраняется в файл. Если возникает проблема с Ctrl+Insert и по какой то причине выделенное не попадает в буфер обмена, то использовать Clipboard=1, в этом режиме не имитируется Ctrl+Insert, то есть нужно вручную вызвать Ctrl+C, а потом горячую клавишу захвата фрагмента.

Параметр separator= индивидуальный и для больших фрагментов текста можно использовать многократный перенос строк, а для однострочных фрагментов можно использовать однократный перенос, понимая, что каждая строка это новый фрагмент.

Параметр edit= индивидуальный, позволяет править текст в окне предпросмотра, точнее править текст можно всегда, но использовать отредактированный будет секция с флагом edit=1. Например при сохранении ссылок можно дополнять их комментариями. Чтобы не путаться нужно добавить к имени пункта суффикс (W) или (E), например "Link (E)", то есть секция, которая берёт текст из окна редактора.

Параметр TitleBtwn=<title>_|_<\title>_|_\r\n\r\n Означает что будет найден текст между тегами <title> и <\title> в выделенном фрагменте и добавлен как заголовок сразу после разделителя, указанного в separator=. При этом после заголовка будет добавлено \r\n\r\n (третий элемент строки). В этом поле можно использовать переменные дат (см. ниже %yy и т.д.). В параметре TitleBtwn можно указывать escape-последовательности (\r\n и т.д.). Пробелы и переносы строк в начале и конце захваченного заголовка будут удалены. Если захваченный заголовок имеет перенос строки, то это не будет добавлено, текст захватывается только на одной строке.
Этот параметр полезен, если происходит целенаправленное копирование текстов определённого формата, где в содержимом находится, например, путь к файлу или другая исключительная информация, которую желательно выставить заголовком в первой строке. Причём с помощью separator и третьего элемента параметра TitleBtwn можно задать что будет до и после заголовка.

Параметр wstr=0 и bom=1 определяют кодировку файла. Некоторые файлы, особенно в режиме mode=2 требуют конкретной кодировки, чтобы в последствии не пришлось перекодировать каждый файл. Символы греческого алфавита или другого языка кроме латинских букв невозможно сохранить в ANSI, поэтому по умолчанию используется UTF-8 с BOM.
Если файл был уже создан в одной из кодировок (в режиме mode=1), то не нужно переключать на другой формат, иначе данные будут испорчены. Чтобы исправить такую проблему нужно сначала открыть файл цитат в каком нибудь редакторе и преобразовать его в нужную кодировку, а уж потом изменять настройки кодировки в ini-файле и запускать программу.

Формат дат

Параметр folder=%yyyy.%mm использует нативную функцию FormatDate() из PureBasic, где:

%yyyy: год из 4-х цифр.
%yy: год из 2-х цифр.
%mm: месяц из 2-х цифр.
%dd: день из 2-х цифр.
%hh: час из 2-х цифр.
%ii: минут из 2-х цифр.
%ss: секунд из 2-х цифр.