Страница 3 из 3

Добавлено: Вс июл 08, 2012 15:56
Flasher
Tol!k писал(а):из-за кириллицы
Почему так решил? С латиницей такого нет?
Тут в проге какая-то проблема. Автодетект не срабатывает.
Кстати, TC эти uue тоже не берёт..

B3T6 - это ты что ль? :)

Добавлено: Вс июл 08, 2012 16:19
Tol!k
С латиницей такого нет?
Нет
Кстати, TC эти uue тоже не берёт..
У меня берёт. И WinRar тоже
ты что ль?
Ага

Добавлено: Пн июл 09, 2012 02:41
Flasher
Tol!k писал(а):У меня берёт.
Странно..

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

'================================================================
' Получение в текущей папке файла из кодированного текста
' буфера обмена вида B64/MIME/UUE/XXE/BinHex
' Условие: путь запуска - пустой

' Автор - Flasher ©
'======================= Путь к uudeview ========================
UUDev = """%COMMANDER_PATH%\Utils\uudeview\uudeview.exe"""
'======================== Путь к TCFS2 ==========================
TCFS2 = """%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe"""
'================================================================
Set SHA = CreateObject("Shell.Application")
Dim WSH : Set WSH = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
File = SHA.NameSpace(WSH.ExpandEnvironmentStrings("%TEMP%")).Self.Path & "" & FSO.GetTempName
Set F = FSO.OpenTextFile(File, 2, True)
P = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
A = WSH.RegRead(P) : If A > 0 Then WSH.RegWrite P, 0, "REG_DWORD"
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
F.Write Trim(Clip) : F.Close : WSH.Run UUDev & " -i -m +o -c """ & File & """", 0, True
WSH.Exec(TCFS2 & " /ef tcm(540)") : If A > 0 Then WSH.RegWrite P, A, "REG_DWORD"
Set FSO  = Nothing : Set WSH = Nothing : Set SHA = Nothing : WScript.Quit
UUDeview

Добавлено: Сб июл 14, 2012 19:45
LonerD
Flasher
Просьба расширить приведённый скрипт двумя функциями:
1. Возможность распаковывать скопированный с сайтов текст без предварительной его обработки.
То есть копируется иногда текст с лишними пробелами. С данного сайта, в частности, в Опере к копируемому тексту добавляются пробелы в конце всех строк кроме последней и в начале всех строк кроме первой. Скрипт должен сам предварительно автоматически проанализировать текст и убрать лишние пробелы.

2. Декодирование файла под курсором; если под курсором некодированный файл - тогда декодирование текста из буфера.
То есть скрипт анализирует файл под курсором. Если он кодированный - то скрипт распаковывает его в текущую папку. Если файл не кодированный - то скрипт анализирует буфер и декодирует содержимое буфера если в буфере кодированный текст.
(сейчас у меня две команды - декодировать файл под курсором и декодировать текст из буфера; хочется вместо них сделать одну универсальную команду, которая может распаковывать и то, и то).

Добавлено: Сб июл 14, 2012 23:49
Flasher
LonerD
1. Я до этого пробовал выделять сразу с лишними пустыми строками примеры по ссылкам, всё работало. А пробелы и так убираются тримом.
2. Я бы не стал мешать одно с другим. Во-первых, это далеко не всем нужно, а во-вторых, это замедлит момент появления файла в панели. Сделаю позже отдельный вариант. А пока сюда загляни.

Добавлено: Вс июл 15, 2012 03:05
LonerD
А пробелы и так убираются тримом.
Начал пробовать. Обнаружил, что пробелы в конце строк удаляются.
Но в Опере при копировании возникают ещё лишние пробелы в начале строк, и скрипт такое "не пережёвывает".
А пока сюда загляни.
Это и есть второй скрипт для кодирования, которым я пользуюсь :)
Сейчас возникла идея. Что если объединить эти два скрипта? Наверное, правильней будет всё-же в первую очередь обрабатывать буфер, чтобы не потерять его содержимое, а потом уже анализировать файлы.
Новый скрипт должен:
1. Проверять буфер обмена, если в буфере есть кодированный текст - раскодировать его в активную панель.
2. Если в буфере текст не кодированный - то скрипт проверяет файл под курсором. Если файл кодированный - то раскодирует его в активную панель.
3. Если файл под курсором не кодированный - то он кодируется в активную панель.
Сразу убивается три зайца.

Добавлено: Пн июл 16, 2012 16:24
Flasher
LonerD писал(а):Что если объединить эти два скрипта?
Нет смысла, там только MIME.
А то, что ты предлагаешь, сделать можно, только по времени отработки будет дольше проходить.

В общем, выложил в более подходящем месте.

Добавлено: Ср ноя 28, 2012 02:50
Tol!k
декодирование UUE без Хелпера, без Тотала и без левых утилит :D:D

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

' Получение в текущей папке файла из кодированного текста
' буфера обмена в виде B64/MIME/UUD/UUE/XXD/XXE/BinHex/AtoB/BtoA

' Автор - Flasher ©
'===============================================
Dim FSO, WSH, F, TF
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSH = CreateObject("WScript.Shell")
TempFolder = WSH.ExpandEnvironmentStrings("%TEMP%") & "\0"
If Not FSO.FolderExists(TempFolder) Then FSO.CreateFolder TempFolder
TempFile = TempFolder & "\" & FSO.GetTempName
NewFile = TempFolder & "\*.*"
Set F = FSO.OpenTextFile(TempFile, 2, True)
P = "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\1407"
A = WSH.RegRead(P)
If A > 0 Then WSH.RegWrite P, 0, "REG_DWORD"
Clip = CreateObject("htmlfile").ParentWindow.ClipboardData.GetData("text")
F.Write Clip
F.Close
Set TF = WSH.Exec("%ProgramFiles%\WinRAR\WinRAR.exe e " & TempFile)
TF.Terminate
FSO.DeleteFile TempFile, 1
If FSO.GetFolder(TempFolder).Files.Count > 0 Then _
FSO.MoveFile NewFile, WSH.CurrentDirectory Else WScript.Quit
FSO.DeleteFolder TempFolder, 1
WSH.SendKeys "^R"
If A > 0 Then WSH.RegWrite P, A, "REG_DWORD"
Set FSO = Nothing
Set WSH = Nothing
WScript.Quit
Flasher
[s]здесь проблема с кириллицей сохраняется, т.е. она возникает на этапе буфер→.uue
а не из-за декодирующей утилиты[/s]
неожиданно проблема с кириллицей исчезла o_O

Добавлено: Ср ноя 28, 2012 10:14
Flasher
Tol!k писал(а):и без левых утилит
Не левее твоего платного WinRAR. :wink:
Да забудь про старый вариант, жми по ссылке выше, там всё учтено.