Возможно ли плагином как-то затесаться в процесс чтения/записи файла в качестве фильтра(назвем это так)?
У меня есть файл verybiglist.txt который занимает 20MiB. Для экономии места я хочу его сжать каким-нибудь потоковым архиватором(например gzip). Я то зажму, но потом что-бы его просто посмотреть нужно будет его сначала распаковать во временную папку аж потом смотреть. Не совсем удобно и быстро. Тем более если нужно отредактировать.
Второй, более распространенный и реальный пример: есть файл some_picture.svgz - GZip-нутый svg-файл(svg - xml, т.е. нами читаемый).
- Предположим формат специфицирован как набор 4-байтных блоков, которые представляют собой 32 беззнаковые целые.
- Тогда, при открытии этого файла АкелПадом, фильтр увидит что он формат понимает, развернет его в обычный читаемый текст(по одному числу на строчку) и выдаст как содержимое документа. При этом АкелПад должен запомнить каким фильтром он открыл документ.
- Если пользователь пожелает поредактирвовать документ, то при его сохранении Акел должен добросовестно обратится к запомненному фильтру. Фильтр свою очередь возьмет у АкелПад-а текст, распарсит его и сохранит в бинарном формате(если распарсит правильно). Также в диалоге выбора имени файла для сохранения "Сохранить как..." можно будет добавить список этих фильтров.
- При открытии выбирают exe, dll, ocx, res и прочие файлы-контейнеры. Фильтр их де компилирует в исходный текст(задача 100% обратима).
- Пользователь редактирвует всё что желает.
- При сохранении фильтр попытается откомпилировать результат работы пользователя, и ложит в указанный модуль.