[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Andrey_A, ХарВик, chip642  
Форум » • Total Commander • » ТЕСТИРОВАНИЕ СКРИПТОВ для TC » ExtractsFromBarMenu.vbs - Извлечение из .bar файлов значений (Total Commander)
ExtractsFromBarMenu.vbs - Извлечение из .bar файлов значений
Andrey_AДата: Четверг, 29.03.2012, 11:50 | Сообщение № 1
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
Извлекает из всех в .bar файлов в указанной папке значения menuX= и сохраняет результат в алфавитном порядке в указанный файл

Доступно только для пользователей


 
HA3APETДата: Четверг, 29.03.2012, 18:35 | Сообщение № 2
Генерал-полковник

На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
Награды: 1
Репутация: 3
Результат на моей сборке, те на всей папке bar
Code
CurrPorts - показывает все открытые порты вашего компьютера, закрытие TCP-соединений, завершение процессов
CurrPorts - показывает все открытые порты вашего компьютера, закрытие TCP-соединений, завершение процессов
DomainHostingView - показывает подробную информацию о доменах
FileZilla - FTP-менеджер для загрузки и скачивания  файлов с FTP-серверов
FileZilla - FTP-менеджер для загрузки и скачивания  файлов с FTP-серверов
FileZilla - FTP-менеджер для загрузки и скачивания  файлов с FTP-серверов
FileZilla - FTP-менеджер для загрузки и скачивания  файлов с FTP-серверов
FileZilla Server - конфигурирование, настройка и мониторинг работы сервера
FileZilla Server - конфигурирование, настройка и мониторинг работы сервера
FileZilla Server - конфигурирование, настройка и мониторинг работы сервера
FileZilla Server - конфигурирование, настройка и мониторинг работы сервера
IPNetInfo - показывает всю доступную информацию об IP-адресе
MACAddressView - информация о сетевых адаптерах по их MAC адресам
NetRouteView - графическая оболочка стандартной Windows утилиты по управлению маршрутами
OperaCacheView - просмотр кэша веб браузера Opera
OperaPassView - восстановление паролей в веб браузере Opera
Putty - Telnet и SSH клиент. Help в папке с программой
Putty - Telnet и SSH клиент. Help в папке с программой
SiteShoter - создание скриншотов веб страниц
SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером
SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером
SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером
SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером
SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером
SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером
SmartSniff - перехват и просмотр TCP/IP-пакетов, передаваемых через сетевые адаптеры между клиентом и сервером
Tftpd32 - DHCP, TFTP, SNTP и Syslog сервера + TFTP клиент
Uninstall Office 2003
Uninstall Office 2007
Uninstall Office 2007
Uninstall Office 2010
VideoCacheView - извлечение видео файлов из кэша веб браузеров
WakeMeOnLan - удалённое включение компьютера
WinSCP - графический клиент протоколов SFTP и SCP
Wireless Network Watcher - показывает кто подключался к вашему WiFi
WirelessNetView -  обзор активных Wi-Fi сетей. Для каждой найденной сети показывает расширенную информацию
Запуск сервера, как программы
Запуск сервера, как программы
Запуск сервера, как программы
Инсталляция и запуск сервера в качестве службы
Инсталляция и запуск сервера в качестве службы
Остановка и удаление службы сервера
Остановка и удаление службы сервера
Остановка сервера, как программы
Остановка сервера, как программы
Скачать/обновить все утилиты от NirSoft в сборке TC
Скачать/обновить все утилиты от NirSoft в сборке TC
Скачать/обновить все утилиты от NirSoft в сборке TC
Скачать/обновить все утилиты от NirSoft в сборке TC
Скачать/обновить все утилиты от NirSoft в сборке TC
Скачать/обновить все утилиты от NirSoft в сборке TC
Скачать/обновить все утилиты от NirSoft в сборке TC
Скачать/обновить все утилиты от NirSoft в сборке TC

То есть всё из menuX, но с повторами и с 1 бара и далеко не всё.


Сообщение отредактировал HA3APET - Четверг, 29.03.2012, 18:37
 
Andrey_AДата: Четверг, 29.03.2012, 18:40 | Сообщение № 3
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
Quote (HA3APET)
Результат на моей сборке, те на всей папке bar

Не понял, поподробнее, я сделал как было в задании...
Что-то надо дополнительно
У меня в сборке выдало примерно 3500 строк. Но мне функционал не сильно нужен - я список вытаскиаю по другому

======================
Добавлено:
Я посмотрел barы в твоей сборке - они все в разной кодировке, у меня они в одной
Я попробую с этим что-то сделать...
Я так понял, что нужно удалить дубликаты


 
HA3APETДата: Четверг, 29.03.2012, 18:48 | Сообщение № 4
Генерал-полковник

На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
Награды: 1
Репутация: 3
Да ничего доп не надо, всё правильно ты понял, но результат почему то не удовлетворительный, он выше.
Вот сижу тестирую по 1 бару. На моих самых больших он спотыкается и выводит следующее.
Code
---------------------------
Windows Script Host
---------------------------
Сценарий:    C:\PowerUserv57\scripts\Новый файл.vbs
Строка:    52
Символ:    28
Ошибка:    Индекс выходит за пределы допустимого диапазона: '[number: -1]'
Код:    800A0009
Источник:  Ошибка выполнения Microsoft VBScript

---------------------------
ОК    
---------------------------
 
HA3APETДата: Четверг, 29.03.2012, 18:53 | Сообщение № 5
Генерал-полковник

На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
Награды: 1
Репутация: 3
Папка с моими барами.
ftp://109.60.243.27/Bars.zip
 
HA3APETДата: Четверг, 29.03.2012, 18:54 | Сообщение № 6
Генерал-полковник

На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
Награды: 1
Репутация: 3
Да, точно! У меня разная кодировка, забыл предупредить.
 
Andrey_AДата: Четверг, 29.03.2012, 18:55 | Сообщение № 7
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
У меня есть твои бары, я вот смотрю их - и дело всё в кодировке
filezilla.bar - ANSI
PEcommand.bar - UTF-16
Постараюсь побороть


 
HA3APETДата: Четверг, 29.03.2012, 18:59 | Сообщение № 8
Генерал-полковник

На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
Награды: 1
Репутация: 3
Andrey_A, если проще, то пусть всё будет в Юникоде! И тебе в сборке советую в Юникод перевести, а то на буржуйских версиях Винды будут кракозябры.
Просто для Юникода я подправил! Спасибо за скрипт!


Сообщение отредактировал HA3APET - Четверг, 29.03.2012, 19:43
 
Andrey_AДата: Четверг, 29.03.2012, 21:09 | Сообщение № 9
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
Уточнить надо:
1. Нужно выдать общий список по всем барам или для каждого отдельно?
2. Удалять ли дубликаты?

Я так понял один общий список. У меня скрипт читает и складывает всё содержимое,
затем отбирает "menuX" , далее сортирует


 
HA3APETДата: Четверг, 29.03.2012, 21:10 | Сообщение № 10
Генерал-полковник

На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
Награды: 1
Репутация: 3
Список формируется по алфавиту, но сперва идут с заглавной буквы, а с маленькой все в самом низу.
Общий!
Дубликаты удалять! Но у меня их нет)
На данный момент меня уже всё устраевает, кроме того, что строки с мал. буквы в самом низу.

Сделал так
Code
copy /y "%~dp0..\..\install\User\User.ini" "%~dp0..\..\install\Bars\User.bar"
"%~dp0ExtractsFromBarMenu.vbs" "%~dp0..\..\install\Bars\" "%~dp0Spisok.txt"
findstr /c:" - " "%~dp0Spisok.txt" >SpisokProgram.txt
del "%~dp0Spisok.txt"
del "%~dp0..\..\install\Bars\User.bar"

User.ini - это меню Запуск


Сообщение отредактировал HA3APET - Четверг, 29.03.2012, 21:15
 
Andrey_AДата: Четверг, 29.03.2012, 21:22 | Сообщение № 11
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
Извлекает из всех в .bar файлов в указанной папке значения menuX= и сохраняет результат в алфавитном порядке в указанный файл

Code
' ExtractsFromBarMenu.vbs
'========================   Описание   =====================================
' Извлекает из всех в .bar файлов в указанной папке значения menuX=
' и сохраняет результат в алфавитном порядке в указанный файл
'=======================   Параметры  =====================================
' 1-й параметр: путь\до\папки\bar-файлов
' 2-й параметр: путь\к\файлу куда сохраняется информация
'========================   Примеры   =====================================
' "%%COMMANDER_PATH%%\Bar" "%%COMMANDER_PATH%%\Bar.txt"

' Автор:             Аверин Андрей
' Версия:          1.1  (29.03.2012)
' Mail:                 Averin-And@yandex.ru
' Site:                  http://tc-image.3dn.ru/forum/3-261-856-16-1333007402
'========================================================================
If WScript.Arguments.Count < 2 Then MsgError(1)
FFolder = GetPath(WScript.Arguments(0)) : bFile = GetPath(WScript.Arguments(1)) : BT = ""

With CreateObject("Scripting.FileSystemObject")
   If .FileExists(FFolder) Then MsgError(2)
   Set FF = .GetFolder(FFolder)
   For Each Files In FF.Files
     If LCase(.GetExtensionName(Files)) = "bar" Then
       B = .OpenTextFile(Files).ReadAll
       If InStr(LCase(B), "[buttonbar]") = 0 Then B = .OpenTextFile(Files, 1, False, -1).ReadAll
       If InStr(LCase(B), "[buttonbar]") = 0 Then B = .OpenTextFile(Files, 1, False, -2).ReadAll
       If InStr(LCase(B), "[buttonbar]") > 0 Then BT = BT & B & vbNewLine
       N = InStr(BT, "яю[")
       If N > 0 Then BT = Mid(BT, 1, N - 1)
     End If
     B = ""
   Next
   If Len(BT) > 0 Then
     L = Split(BT, vbNewLine)
     For i = 0 To Ubound(L)
       If Len(L(i)) > 0 Then
         If InStr(LCase(L(i)), "menu") > 0 Then
          N = Trim(Mid(L(i), InStr(L(i), "=") + 1))
          If Len(N) > 0 Then T = T & N & vbNewLine
         End If
       End If
     Next
     M = Split(T, vbNewLine)
     On Error Resume Next
     MM = DelDublicateArr(M)
     SortingUp MM, 0, Ubound(MM)
     T = Join(MM, vbNewLine)
     .CreateTextFile(bFile, True).Write T
   End If
End With

Set FF = Nothing : WScript.Quit
Function GetPath(pPath) : GetPath = CreateObject("WScript.Shell").ExpandEnvironmentStrings(pPath) : End Function

Sub MsgError(N)
   Select Case N
     Case 1 Msg = "Должно быть Два параметра!"
     Case 2 Msg = "Указанная папка не существует"
   End Select
   MsgBox Msg, vbOKOnly & vbInformation, "Чтение menu из .bar файлов" : WScript.Quit
End Sub

Sub SortingUp(sArr, ll, rr)
   Dim ii, jj, xx, yy
   ii = ll : jj = rr : xx = sArr((ll + rr) \ 2)
   Do
     While sArr(ii) < xx : ii = ii + 1 : Wend
     While xx < sArr(jj) : jj = jj - 1 : Wend
     If ii <= jj Then
       If sArr(ii) <> sArr(jj) Then
         yy = sArr(ii) : sArr(ii) = sArr(jj) : sArr(jj) = yy
       End If
       ii = ii + 1 : jj = jj - 1
     End If
   Loop Until ii > jj
   If ll < jj Then SortingUp sArr, ll, jj
   If ii < rr Then SortingUp sArr, ii, rr
End Sub

Function DelDublicateArr(Arrr)
   Dim oDict, Item, Key
   Set oDict = CreateObject("Scripting.Dictionary")
   oDict.RemoveAll : oDict.CompareMode = 0
   For Each Item In Arrr
     If Len(Item) > 0 Then
       If Not oDict.Exists(Item) Then oDict.Add Item, Item
     End If
   Next
   Key = oDict.Keys : Set oDict = Nothing : DelDublicateArr = Key
End Function



 
Andrey_AДата: Четверг, 29.03.2012, 21:25 | Сообщение № 12
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
Всё равно все файлы не хочет читать даже в одной кодировке, попробуй...
Если что может на другом языке попробую


 
HA3APETДата: Четверг, 29.03.2012, 21:29 | Сообщение № 13
Генерал-полковник

На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
Награды: 1
Репутация: 3
Что значит не хочет? У меня же работает. Предыдущий.
Я просто всё в Юникод перевёл и добавил в скрипт поддержку Юникод
 
HA3APETДата: Четверг, 29.03.2012, 21:31 | Сообщение № 14
Генерал-полковник

На сайте с: 13.03.2012
Город: Иваново
Сообщений: 24
Награды: 1
Репутация: 3
Во втором скрипте спотыкается на "AkelPad.Document" У меня его нет.

Сообщение отредактировал HA3APET - Четверг, 29.03.2012, 21:32
 
Andrey_AДата: Четверг, 29.03.2012, 21:34 | Сообщение № 15
Генералиссимус

На сайте с: 26.01.2012
Город: Сочи, Хоста
Сообщений: 7167
Награды: 139
Репутация: 125
Аверин Андрей
Поправил...

Quote (HA3APET)
Что значит не хочет?

Я просто на твоих старых барах тренировался, всю тренировку сломал! biggrin


 
Форум » • Total Commander • » ТЕСТИРОВАНИЕ СКРИПТОВ для TC » ExtractsFromBarMenu.vbs - Извлечение из .bar файлов значений (Total Commander)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Интеллектуальные права и отказ от ответственности