Script Content Plugin

Обсуждение только плагинов и утилит для Total Commander.

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

Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Script Content Plugin

Сообщение Lev »

Script Content Plugin
Позволяет самому писать vbs и js скрипты для получения и обработки информации из файла или для обработки его имени и помещения результата в колонку плагина. Может быть полезен для получения полезной информации из файла или для сортировки файлов в желаемом порядке

Сам плагин очень сырой, но, тем не менее...

Задаем вопросы и обмениваемся скриптами
Параллельная англоязычная тема
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Было бы неплохо не копировать плагин для нескольких результатов, а сделать у одного плагина несколько результатов (колонок).
Например, это можно реализовать, если в script.ini в разделе [Script] переменную Section задавать в виде:

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

[Script]
Section=Defaults|Extension|AddZeros|exe-arc up|js
А результат работы скрипта давал бы не одну колонку Result, а несколько колонок, названных по имени секции.
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Имхо это будет удобнее, но всё равно нельзя сделать количество полей потенциально неограниченным. Пяти имхо достаточно.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Ну нет!
5 - это крайне мало. 50 - вот это наш размерчик :)
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Ух, ты! Тема ожила, я думал и оно и ненужно никому :)

Итого:
в ToDo листе
выводить из одного скрипта не одну колонку, а несколько - result1, result2... (планировал 10 шт.)
включение в скрипт подпрограмм (Sub, Function)
каждый скрипт в свою колонку - не хочется
НО: я не запускал дельфи уже пол-года и не знаю когда ещё запущу :(

PS - секция Defaults - информационная, ни на что не влияющая, в Script.ini её можно не включать
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Ура, автор присутствует :)
Что ж, надеемся, что хорошее начинание не будет "почить в бозе".

Тут еще LocKtaR-o-DarK заметил, что память не очищается. В частности, после работы поиска вот с этис скриптом.
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Тут вам не повезло, автор - ленивый script kiddy :(
посмотреть попробую, обещать ничего не могу

зы. и именовать колонку из плагина, я тоже пока не умею
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

Lev
Жаль :(

В свою очередь могу постараться почаще прибегать к помощи твоего плагина и почаще выкладывать какие-нибудь скрипты под него.
Прояви, пожалуйста (ну пожааалуйста :)), немного активности, и, глядишь, плагин заживет активной жизнью! К моим скриптам народ, видимо, уже привык :). Настала пора приучить теперь к твоему плагину :D
Нет, я не сплю. Я просто медленно моргаю.
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Могу, для начала, перезапостить сюда интересные скрипты с оф. форума. Автор большинства скриптов van Dusen.
Аватара пользователя
Batya
Сообщения: 2236
Зарегистрирован: Ср дек 15, 2004 09:51
Откуда: Москва, Россия

Сообщение Batya »

ОК.
Выкладывай, только переведи описание.

Приведу еще одну ссылку на использование твоего плагина.
Еще я когда-то приводил скрипт, показывающий 16-тиричное значение первого символа файла. Но позже уже увидел, что аналогичный скрипт есть на оф. форуме. Поэтому свою ссылку искать не буду. Приведи скрипт с оф. форума.
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Ну, начнём потихоньку :)

ricobautsch

Небольшой скрипт, который может быть полезен для поиска файлов с определенной сигнатурой (первые байты в файле).

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

'signatur.vbs by ricobautsch 

'Script for Script Content Plugin (c)Lev Freidin, 2005 
'http://www.totalcmd.net/plugring/script_wdx.html 
'http://wincmd.ru/plugring/script_wdx.html 
' 
'Этот скрипт показывает первые 10 байт файла в тектовом или hex представлении
'может быть полезен для поиска файлов с определенной сигнатурой
'This script returns the first 10 bytes in the file as text or hex-representation. 
'Could be usefull for example to search for files with a specified signatur 

const bHex = True 
const nCharCnt = 10 

Set fso = CreateObject("Scripting.FileSystemObject") 
Set oTextStream = fso.OpenTextFile(filename) 

If not oTextStream.AtEndOfStream Then 
  content_str = oTextStream.Read(nCharCnt) 
  
  If bHex Then 
    For i=1 To Len(content_str) 
      If content <> "" Then 
        content = content & " " 
      End If 
      
      hex_value = Hex(Asc(Mid(content_str,i,1))) 
      
      content = content & string(2 - len(hex_value), "0") 
      content = content & hex_value 
    Next 
  Else 
    content = content_str 
  End If 
End If 

oTextStream.Close 
Для установки количества отображаемых байт/букв и переключения режимов отображения меняйте константы bHex и nCharCnt
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Найти и пометить файлы с одинаковыми именами
Исходное сообщение - http://www.ghisler.ch/board/viewtopic.php?t=8844

Peter

В списке есть исходные данные (например: 1.doc, 2.do3, 3.doc, 4.doc) и их производные (1.pdf, 2.pdf, 3.pdf, 5.pdf).

Требуется выполнить несколько задач:

a) Найти все doc-файлы, к которым нет соответствующего pdf (напр. 4.doc)
b) Найти все pdf-файлы, к которым нет соответствующего doc (напр. 5.pdf)
c) Найти все pdf-файлы старее, чем исходный doc, и соответственно устаревшие
----
van Dusen

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

'Script for Script content Plugin 
' van Dusen
' (c)Lev Freidin, 2005 
' http://www.totalcmd.net/plugring/script_wdx.html 
' http://wincmd.ru/plugring/script_wdx.html 

Dim fso, f1, f2 
Set fso = CreateObject("Scripting.FileSystemObject") 
Set f1 = fso.GetFile(filename) 

sBaseIst = lcase(fso.GetBaseName(filename)) 
sExtIst = lcase(fso.GetExtensionName(filename)) 
sDateModF1 = f1.DateLastModified 
sExtSoll1 = "doc" 
sExtSoll2 = "pdf" 
Const ForReading = 1 


SELECT Case sExtIst 

   Case sExtSoll1 
      sResult = sExtSoll2 & " - сответствующий файл" 
      If fso.FileExists(sBaseIst & "." & sExtSoll2) Then 
         Set f2 = fso.GetFile(sBaseIst & "." & sExtSoll2) 
         sTimeDiff = DateDiff("n", sDateModF1, f2.DateLastModified) 
         If sTimeDiff < 0 Then 
            sResult = "2: " & sResult & " устарел"
         Else 
            sResult = "1: " & sResult & " свежий"
         End If 
         sResult = sResult & " (" & sTimeDiff & " Min. Diff.)" 
      Else 
         sResult = "3: " & sResult & " отсутствует" 
      End If 

   Case sExtSoll2      
      If fso.FileExists(sBaseIst & "." & sExtSoll1) Then 
         Set f2 = fso.GetFile(sBaseIst & "." & sExtSoll1) 
         sTimeDiff = DateDiff("n", sDateModF1, f2.DateLastModified) 
         If sTimeDiff > = 0 Then 
            sResult = "2: Файл устарел" 
         Else 
            sResult = "1: Свежий файл" 
         End If 
         sResult = sResult & " ("& sTimeDiff & " Min. Diff.)" 
      Else 
         sResult = "3: "& sExtSoll1 &" - соответствующий файл отсутствует" 
      End If 

   Case Else 
      sResult = "" 

End SELECT 

content = sResult 

Set fso=nothing 
Set f1=nothing 
Set f2=nothing
Лично мне разница во времени не понадобилась, я натравливал скрипт на папку с кучей jpg фоток и соответствующими им обтравленными tif'ами, понравилось :)
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Относительный путь к файлу
Для использования в режиме BranchView (Ctrl+B), для работы требуется TCScript.Helper
В обсуждении на оф. форуме были и другие варианты

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

'relpath.vbs - Show relative path to file in the Branch view (Ctrl+B)
'Script for Script Content Plugin (c)Lev Freidin, 2005 
'http://www.totalcmd.net/plugring/script_wdx.html 
'http://wincmd.ru/plugring/script_wdx.html
Dim fso, f, tcs

Set fso = CreateObject("Scripting.FileSystemObject")
Set tcs = CreateObject("TCScript.Helper")

f = tcs.GetSrcPath
relpath = left(filename, len(filename) - len(fso.GetFileName(filename)))
relpath = Mid(relpath, Len(f)+1)
content = relpath

Set fso=nothing
Set tcs=nothing
Аватара пользователя
funduk
Сообщения: 1515
Зарегистрирован: Вт авг 16, 2005 16:00
Откуда: Санкт-Петербург

Сообщение funduk »

Ещё скрипт.
Аватара пользователя
Lev
Сообщения: 392
Зарегистрирован: Ср мар 02, 2005 16:34

Сообщение Lev »

Шоб не потерялось :)
Пометить файлы/папки

[off]funduk Хорошо бы в дополнение к ссылкам давать краткое описание[/off]
Ответить