Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Вывод descript.ion в файл удобочитаемый
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
slideray



Joined: 28 Jun 2010
Posts: 115

Post (Separately) Posted: Thu Sep 01, 2011 11:29    Post subject: Вывод descript.ion в файл удобочитаемый Reply with quote

Как вывести содержимое descript.ion в *.txt, в читабельном виде?
Т.е. чтобы были сохранены переносы строк и желательно отделялось имя файла, скажем, тем же переносом строки.

Есть ли листер плагин, позволяющий корректно отображать descript.ion, сохраняя форматирование?
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Thu Sep 01, 2011 11:49    Post subject: Reply with quote

Плагина нет. Думаю, по очень простой причине - это никому, кроме тебя, не нужно.
Есть программы, производящие пакетную замену, в том числе и из командной строки. Ссылки и названия давать не буду, чтобы не нарушить. Эти программы могут заменить \n на реальный перевод строки.
А вот отделять имя файла от комментария будет посложнее. Жди, пока кто-то из наших гуру напишет скрипт. Я пас, потому что сейчас занят, а полезность задачи лично для себя не вижу.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Fri Sep 02, 2011 21:01    Post subject: Reply with quote

Code:
TOTALCMD#BAR#DATA
%comspec% /k chcp 1251>nul &ssed.exe
-r -e s/(^\"[^\"]+\")*\s/\1\n/;s/В$/\n\n/g;s/\\n/\n/g; descript.ion
shell32.dll,1
что в descript.ion ?


-1


окно закрывать [x]-м
sed тоже работает
Back to top
View user's profile Send private message
slideray



Joined: 28 Jun 2010
Posts: 115

Post (Separately) Posted: Sun Sep 04, 2011 03:58    Post subject: Reply with quote

Tol!k
Выглядит очень интересно, насколько я понял это кнопка? Можно немного подробнее об использовании, у меня при нажатии в окне командной строки выводится следующий текст:
Code:
"ssed.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
...и ничего не происходит. Что вообще нужно ждать от скрипта, что и как он делает?

 !  Avada:
Избыточное цитирование удалено. Соблюдаем правила.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Sun Sep 04, 2011 13:00    Post subject: Reply with quote

Это кнопка. Установка курсора на descript.ion не важна.
В папку, прописанную в %path% нужно положить http://sed.sourceforge.net/grabbag/ssed/sed-3.62.zip или любой windows-порт sed (при этом нужно будет в кнопке исправить ssed.exe на sed.exe)
Или прописать полный путь %commander_path%\Utils\ssed.exe
Back to top
View user's profile Send private message
slideray



Joined: 28 Jun 2010
Posts: 115

Post (Separately) Posted: Wed Sep 07, 2011 06:40    Post subject: Reply with quote

Отлично, работает! Спасибо. То что нужно.
А возможно ли прописать это по такой схеме:
файл "ssed.exe" лежит в определенной папке и к нему происходит обращение,
после чего обрабатывался каталог активной панели,
листинг выдается в текстовом файле, сохраняемом рядом с descript.ion с именем descript.txt
(дискомфорт вызывает необходимость укладывать файл ssed.exe в папку рядом c descript.ion, листинг требует дополнительной обработки - выковыривания из командной строки)

Вообще грандиозно было бы - вычленение коментариев из выделенных файлов (в текстовый файл или буфер обмена) по той же схеме форматирования:
"Имя файла" (перенос строки)
Коментарий
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Wed Sep 07, 2011 11:17    Post subject: Reply with quote

slideray
Если необходимо только отображение (без формирования дополнительных файлов), то можно использовать Script plugin-maker.
Для треуемой задачи файл wlx_vbscript.vb:
Code:
font_name            = "Fixedsys"
font_size            = 12
view_end             = "false"
view_wrap            = "true"
view_scroll          = "both"
view_backgroundcolor = "white"
view_textcolor       = "black"

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")

result_text = ""

If LCase(FSO.GetFileName(file_name)) = "descript.ion" Then
  ReadFile
  RegReplace "\r", ""
  RegReplace "^([^ ""]+)\s+", """$1"" "
  RegReplace "^""([^""]+)""\s+(.+)$", "$1" & vbNewLine & "      $2"
  RegReplace "\\n", vbNewLine & "      "
  RegReplace Chr(4) & "В$", ""
End If

Sub ReadFile()
  AddLine FSO.OpenTextFile(file_name, 1).ReadAll
End Sub

Sub RegReplace(a, b)
  With New RegExp
    .Global     = True
    .IgnoreCase = True
    .MultiLine  = True
    .Pattern    = a
    result_text = .Replace(result_text,b)
  End With
End Sub


slideray wrote:
дискомфорт вызывает необходимость укладывать файл ssed.exe в папку рядом c descript.ion

Этого не нужно делать:
Tol!k wrote:
Или прописать полный путь %commander_path%\Utils\ssed.exe

Т.е. в кнопке пиши не просто ssed.exe, а с путём.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Wed Sep 07, 2011 18:25    Post subject: Reply with quote

slideray wrote:
дискомфорт вызывает необходимость укладывать файл ssed.exe в папку рядом c descript.ion
не надо рядом,
надо в одну из папок, перечисленных в %path% (напр. C:\Windows\) удобнее свою папку с подобными утилитами добавить к %path%
или прописать в кнопке полный путь к ssed.exe


Code:
TOTALCMD#BAR#DATA
%comspec% /c chcp 1251>nul &>descript.txt ssed.exe
-r -e s/(^\"[^\"]+\")*\s/\1\n/;s/В$/\n\n/g;s/\\n/\n/g; descript.ion
shell32.dll,1
descript.ion > descript.txt

1
-1
обрабатывается текущий каталог (без подпапок),
листинг выдается в текстовом файле, сохраняемом рядом с descript.ion с именем descript.txt


slideray wrote:
Вообще грандиозно было бы - вычленение коментариев из выделенных файлов (в текстовый файл или буфер обмена)
выделено несколько descript.ion'ов ? или что?
Back to top
View user's profile Send private message
slideray



Joined: 28 Jun 2010
Posts: 115

Post (Separately) Posted: Wed Sep 07, 2011 21:44    Post subject: Reply with quote

Tol!k wrote:
выделено несколько descript.ion'ов ? или что?

Нет, не descript.ion'ов, а из выделеных файлов (папок), в которых имеются коментарии (если среди выделенных файлов (папок) нет коментариев, они соответственно пропускаются).

Добавлено спустя 20 минут:

Batya wrote:
...можно использовать Script plugin-maker.

Эх, вообще не понял как им пользоваться (
Как wlx-плагин не хочет устанавливаться, пишет при установке "программа не запускается! (5)" да и как он работал бы тоже не понимаю.
в мануале к плагину написано:
Quote:
В каталоге должен обязательно находиться текстовый файл
с именем как у плагина и расширением *.vb или *.js
То есть
wlx_vbscript.js - программа на VBScript
wlx_vbscript.vb - программа на JScript
а в самом файле допускается несколько скриптов?
Если возможно, дайте пожалуйста хотя бы краткое руководство по использованию плагина, возможности у него интересные.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Thu Sep 08, 2011 19:17    Post subject: Reply with quote

slideray wrote:
Quote:
выделено несколько descript.ion'ов ? или что?
Нет, не descript.ion'ов, а из выделеных файлов (папок), в которых имеются коментарии
в каком формате и как их отличить от других файлов
slideray wrote:
(если среди выделенных файлов (папок) нет коментариев, они соответственно пропускаются)
?

Или таки нужно вычленение из descript.ion комментов для выделенных файлов по типу http://forum.wincmd.ru/viewpost.php?p=58180 но с перенаправлением не в поток, а в другой файл?
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Sep 08, 2011 20:06    Post subject: Reply with quote

slideray wrote:
Эх, вообще не понял как им пользоваться (

Как wlx-плагин не хочет устанавливаться, пишет при установке "программа не запускается! (5)" да и как он работал бы тоже не понимаю.
Проверил, всё работает. Win7 x86 TC 7.56a. А работает просто: отображается содержимое в текстовом формате, обработанное скриптом.
Только я не очень понял, зачем делать переносы строк и отступы под формат дерева.
slideray wrote:
wlx_vbscript.js - программа на VBScript
wlx_vbscript.vb - программа на JScript
Ошибка в описании, VB и J местами надо поменять.
slideray wrote:
а в самом файле допускается несколько скриптов?
Насколько я понял допускается для каждого языка по скрипту, содержимое которого можно настраивать под разные форматы.
slideray wrote:
Если возможно, дайте пожалуйста хотя бы краткое руководство по использованию плагина, возможности у него интересные.
Плагин чисто для скриптописателей. Написать переменные для настроек отображения, что в ридми приводятся и парсер по обработки содержимого файла под курсором или файла имеющего расширение, заданное условием в скрипте.
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Fri Sep 09, 2011 10:04    Post subject: Reply with quote

slideray wrote:
Эх, вообще не понял как им пользоваться (

Необходимо установить плагин обычным способом (читаем справку). При этом лучше в списке его переместить повыше (чтобы не перехватывался просмотр другими плагинами).
В папку плагина необходимо поместить файл с именем "wlx_vbscript.vb" и вышеприведённым содержимым. С плагином может работать только один скрипт. Даже если в папке есть ещё файл "wlx_vbscript.js", плагин будет использовать "wlx_vbscript.vb" (это есть в Readme.rus). Но никто не мешает этот скрипт "наворачивать" как угодно.
Соответственно, теперь при просмотре по F3 файлов descript.ion будет отображаться обработанный текст.

slideray wrote:
возможности у него интересные
Ну, не очень-то. Оформление можно применять только для всего текста сразу, нельзя применять разное для отдельных фрагментов текста. Не работает копирование.

Flasher wrote:
Только я не очень понял, зачем делать переносы строк и отступы под формат дерева.
Исключительно - мне так захотелось. Мне удобнее так визуально отделять имена файлов от комментариев.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Sep 09, 2011 16:00    Post subject: Reply with quote

Batya wrote:
Исключительно - мне так захотелось. Мне удобнее так визуально отделять имена файлов от комментариев.
Я так и подумал, что дело в тебе. Ты же придумывал скрипт. Smile
Я бы тогда так сделал:
Quote:
RegReplace "^""([^""]+)""\s+(.+)$", "$1" & vbNewLine & vbTab & "$2"
RegReplace "\\n", vbNewLine
& vbTab
Back to top
View user's profile Send private message
Batya



Joined: 15 Dec 2004
Posts: 2218
Location: Москва, Россия

Post (Separately) Posted: Fri Sep 09, 2011 16:55    Post subject: Reply with quote

Flasher wrote:
Я бы тогда так сделал

Так и сделай.
_________________
Нет, я не сплю. Я просто медленно моргаю.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Fri Sep 09, 2011 18:43    Post subject: Reply with quote

Дык не мне ж надо. Smile
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group