Работа с descript.ion

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Ответить
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Работа с descript.ion

Сообщение Моторокер »

Кто подскажет, как Total работает с файлами descript.ion? Да и вообще, как из Delphi работать с такими файлами? Единственный вариант придумал - грузить в TStringList, работать в нем, выгружать на то же место. Может есть еще варианты?

В инете ничего не нашел. Может модуль готовый есть или компонент?
Аватара пользователя
Nik
Сообщения: 583
Зарегистрирован: Сб янв 01, 2005 13:00
Откуда: Киров
Контактная информация:

Сообщение Nik »

А зачем что-то еще придумывать? По-моему, StringList вполне подойдет. Ну можно, конечно, считать все это дело в массив строк...
Аватара пользователя
Вахмурка
Сообщения: 2587
Зарегистрирован: Пн дек 27, 2004 14:47
Откуда: Большая деревня Москва
Контактная информация:

Сообщение Вахмурка »

Раз уж зашла речь о descript.ion, у меня вопрос. Я до этого работал только с descript.ion и горя не знал, а тут решил попробовать его альтернативу - files.bbs... и обломался.
Итак, если я правильно понял, формат descript.ion для одного файла таков:

Код: Выделить всё

имя_файла пробел описание возврат_каретки
Аналогично, для files.bbs

Код: Выделить всё

имя_файла табуляция описание_строка1
[описание_строка2
описание_строка3
и_т_д]
Квадратные скобки - необязательная часть, ясен пень.
Скажите - я прав? Если нет, то в чем именно не прав. А вот если да, то при наведении курсора на файла его описание из files.bbs не высвечивается. В конфигурации Operation\File Comments поставил выбор на files.bbs, а не на descript.ion. Тотал перегружал. В чем еще может быть дело?
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Возникла идея копировать в плагине описания вместе с файлами.
Думаю так:
После успешного копирования файла
– загрузить descript.ion исходного файла в TStringList
– пройтить по всем строкам, найти запись

Если нашли, то
– загрузить descript.ion нового файла в TStringList
– пройтить по всем строкам, найти запись
– добавить/исправить строку
– изменить атрибуты descript.ion на нескрытый (без этого TStringList не сохраняется)
– сохранить TStringList.SaveToFile
– изменить атрибуты descript.ion на скрытый

Если же файл перемещать, то то же самое выполнить и для исходного файла. Жуть!
Total так же работает?
А если после чтения и до записи кто-то другой изменил descript.ion?

Например, копируются активно файлы в исходную папку, а я в это время их активно перемещаю в другую.

Блокировать descript.ion?

А если исходный и новый файл в одной папке и с одинаковыми именами? Оптимизировать работу, уменьшая кол-во дисковых операций?

Тема по написанию плагинов.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Alextp предложил использовать свои процедуры. В них идёт обработка через ReadLn/WriteLn, сохранение в доп. файл и замена.

Сделал чтение всего файла в строку, обработку этой строки и запись всей строки в тот же файл.

http://motorocker.nm.ru/download/descr.pas.zip
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Ответить