[JFWRus] Total Commander

Здравствуйте!
недавно поднимался вопрос чтения информации об размере объектов в
плавающем режиме. наряду с предложенным вариантом (с символа) существует
второй, использующий функцию StringSegment. Такой подход позволяет
читать информацию, представленную и в килобайтах, а так же выработать
общий подход и к чтению найденных файлов (имена могут содержать пробелы
так и /) в окне поиска.
ВВодиться общая функция такого содержания:
Int Function GetIndexstring (string s, string chr)
var
int ix,
int p
let ix = 1
let p = 1
while p < StringLength (s)
if SubString (s, p, 1) == Chr then
let ix = ix + 1
endif
let p =p + 1
endwhile
Return ix
EndFunction
Она сообщает число вхождений разделителей в указанную строку. И тогда
для чтения размера используем:
SayString ("Размер:" + StringSegment (LinePanel," ", n - 2) + StringSegment (LinePanel,
" ", n - 1))
Для даты:
SayString ("Дата:" + StringSegment (LinePanel, " ", GetIndexString (LinePanel,
" ")))
Для свободного места на диске:
SayString ("Свободно:" + StringSegment (LinePanel, " ", n -5) + StringSegment
(LinePanel, " ", n - 4) )
Где let n = GetIndexString (LinePanel, " ")
В случае вывода времени создания и атрибутов достаточно скорректировать
значение "n - *".
Для упрощения настройки скринридера (работа с выделенным курсором) при
установке оверпаков можно включить функцию AutoStarrEvent () примерно
такого содержания:
var
string WcmdIni
StopSpeech ()
SendMessage (GetAppMainWindow (GetCurrentWindow ()), 274, 61488, 0)
let WcmdIni="C:\\Program Files\\Total Commander\\Wincmd.ini"
if IniReadInteger ("Colors", "InverseCursor", 0, WcmdIni) then
Return
Else
IniWriteInteger ("Colors", "CursorColor", CurColor,WcmdIni);цвет курсора
IniWriteInteger ("Colors", "InverseCursor", 1, WcmdIni);инверсный курсор
и т.д.
параметр WcmdIni указывает путь к файлу, а он различен для версий 6.54 и
ниже! Контроль инверсного выделения позволяет работать с любой палитрой,
а значение CurColor определить эксперементально или задать
CurColor = 8388608, в разделе глобальных констант.
На мой взгляд использование выделенного курсора несколько уменьшает
возможности работы с выделенными объектами, но меньше тормозит машину.В
свои скрипты я добавил:
- сообщение пути и имени архива/файла в окне поиска;
- выбор компакт привода по нажатию комбинации клавиш;
- возврат на предыдущий диск;
- *.jsm дополнен полным перечнем клавишных комбинаций менеджера;
- несколько оптимизировано программирование для ускорения вычислений;
Я не претендую на оригинальность и могу предоставить полный текст *.jss
для доработок и дополнений.
С наилучшими пожеланиями, Leonid Jilin kozerog***@m*****.ru
***
Это сообщение No3825
было разослано для 306 участников дискуссионного листа
[JFWRus] Total Commander
Приветствую, Leonid!
Вы писали:
Леонид, я, конечно, не столь опытен в написании скриптов, но хотелось
бы дать вот какой совет: не используйте функцию SayString. Сами
разработчики говорят, что эта фукция перешла из предыдущих версий и
предназначена преимущественно для тестовых целей, когда вам нужно
вывести промежуточный результат. Вместо неё гораздо удобнее, имхо,
использовать SayMessage.