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 Previous  1, 2, 3, 4  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Sun Jan 30, 2005 03:14    Post subject: Reply with quote

roman78 wrote:
опробовал скрипт - приятно Smile, не торопливо (), но главное работает. А какую строку закоментить чтоб сообщение не выскакивало?

Эту (точнее эти):
Code:
   MsgBox "Операция успешно завершена." & vbcr &  _
   "Всего LOG-файлов FlashGet: "& LogsCnt  , vbInformation, "Сообщение"

А ускорить работу скрипта можно отключив рекурсивный просмотр папок, ограничившись обработкой только текущей. Для этого нужно сделать вот такую правку:
вместо
Code:
Call ScanFolderForLog(Fso.GetFolder(WScript.Arguments(0)))
вставить
Code:
Call EditDescription(Fso.GetFolder(WScript.Arguments(0)))
Back to top
View user's profile Send private message
roman78



Joined: 24 Jan 2005
Posts: 20

Post (Separately) Posted: Sun Jan 30, 2005 04:44    Post subject: Reply with quote

Вах... Так он все внутренности просматривает? Я то думал это и есть обработка одной папки Very Happy и на интерпритируемость грешил... здорово.
И спасибо.
Back to top
View user's profile Send private message
log2bbs



Joined: 03 Feb 2005
Posts: 5

Post (Separately) Posted: Thu Feb 03, 2005 13:51    Post subject: Reply with quote

Здравствуйте всем.

Я тот самый автор log2bbs. Сейчас на сайте выложена версия 1.03,
т.к. в 1.04 действительно образовался странный глюк. Странен он еще и тем, что раньше эта версия у меня работала, а теперь тоже глючит. Smile

Сейчас у меня наличествуют небольшие заморочки, поэтому исправлением глюков смогу заняться только на следующей неделе.
Об исправлении сообщу сюда.

Что касается проблем с code_win - тоже проверю. Я сам, правда, поклонник фара (только бить не надо Smile ), там досовая кодировка используется.

Андрей
Back to top
View user's profile Send private message
roman78



Joined: 24 Jan 2005
Posts: 20

Post (Separately) Posted: Fri Feb 04, 2005 13:39    Post subject: Reply with quote

log2bbs
всегда рады Smile
у меня 1.04 совсем не запускается, а 1.00 и 1.03 - "приложение выполнило недопустимую операцию и будет закрыто". Хотя сначала 1.00 исправно работала.
ВинХР СП2, ТС6.5.
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Fri Feb 04, 2005 23:41    Post subject: Reply with quote

Другой скрипт (3-ая версия, можно взять его отсюда) . Создает многострочные files.bbs. Упрощенный: без рекурсии и без обработки уже существующих записей в файле .bbs. Цифра в выражении Space(2) определяет отступ строк в многострочных комментариях. Меньше 2 не делать, ибо не работает. Строка dos="..." это сконвертированная в DOS-кодировку строчка win="..." (тут в HTML она глючит). В коде отмечены две строки, которые при комментировании убирают URL загрузки и дату сохранения файла соответственно.
Code:
'=========================[ Start of file ]=========================

'  File:         LogsToFileBBS.vbs
'  Description:  Вычитывает описания файлов из FlasGet-овских
'                log-ов в указанной папке и  заносит их
'                в стандартный Files.bbs в этой папке
'  Installation: Создайте кнопку на панели TC
'                Команда: "диск:\путь\к\файлу\LogsToFileBBS.vbs"
'                Параметры: "%P" [Внимание! Именно в кавычках!]
'  Version:      3-ая

'  Copyright:    (c) 2005, Volniy

Option Explicit

Dim Fso, LogsCnt

Set Fso = CreateObject("Scripting.FileSystemObject")

If Fso.FolderExists(WScript.Arguments(0)) = False Then
   MsgBox "Указана неверная директория!", vbCritical, "Ошибка"
Else
   Call EditFilesBBS(Fso.GetFolder(WScript.Arguments(0)))
   MsgBox "Операция успешно завершена." & vbCr & _
   "Всего LOG-файлов FlashGet: " & LogsCnt, vbInformation, "Сообщение"
End If

Set Fso = Nothing
WScript.Quit


Sub EditFilesBBS(curFolder)
   
   Dim F, fExt
   
   For Each F In curFolder.Files
      fExt = UCase(Fso.GetExtensionName(F.Name))
     
      If fExt = "LOG" Then
         LogsCnt = LogsCnt + 1
         ' Обработка исходного файла только если
         ' LOG был именно FlashGet-овский
         
         If FilesBBSFromLOG(curFolder.Path, F.Path) Then
           
            '  Переименование LOG в TXT
            '  F.Name = Fso.GetBaseName(F.Name) & ".txt"
           
            '  или просто их удаление:
            '  F.Delete True
         End If
         
      End If
     
   Next
   
End Sub

 Function FilesBBSFromLOG(Path, LogFile)
   
   Dim dscNew, tmp, forFile, IsFlashLOG
   Dim DateTime, URL
   Dim TS1, TS2, Entry, pos, pos2, TargetION
   
   TargetION = Fso.BuildPath(Path, "FILES.BBS")
   Const ForReading = 1, ForWriting = 2
   
   ' Ищем описание для файла в log-файле
   Set TS1 = Fso.OpenTextFile(LogFile, ForReading)
   
   Do While TS1.AtEndOfStream <> True
      tmp = TS1.ReadLine
     
      'URL:
      pos2 = InStr(1, tmp, "URL:", vbTextCompare)

      If pos2 Then
         URL = Mid(tmp, pos2 + Len("URL:"))     ' Нашли URL и сохранили
         IsFlashLOG = IsFlashLOG + 1
      End If
     
      'Время Сохранения:
      pos2 = InStr(1, tmp, "Время Сохранения:", vbTextCompare)

      If pos2 Then
         DateTime = Mid(tmp, pos2 + Len("Время Сохранения:"))   ' Нашли Время Сохранения
         IsFlashLOG = IsFlashLOG + 1
      End If
     
      'Имя:
      pos2 = InStr(1, tmp, "Имя:", vbTextCompare)
     
      If pos2 Then
         forFile = Mid(tmp, pos2 + Len("Имя:"))     ' Нашли имя и сохранили
         IsFlashLOG = IsFlashLOG + 1
      End If
     
      pos = InStr(1, tmp, "Комментарий:", vbTextCompare)
     
      If pos Then
         Entry = Mid(tmp, pos + Len("Комментарий:"))    ' Комментарий сохранили в Entry
         IsFlashLOG = IsFlashLOG + 1
      ElseIf IsFlashLOG = 4 Then       ' За 1-ой строкой комментария - тоже комментарий
         Entry = Entry & vbCrLf & Space(2) & "| " & tmp
      End If
     
   Loop
   
   ' Закомментируйте ненужные Вам строки:
   Entry = Entry & vbCrLf & Space(2) & "| " & URL
   Entry = Entry & vbCrLf & Space(2) & "| " & DateTime
   
   TS1.Close
   Set TS1 = Nothing
   
   If Not Fso.FileExists(Fso.BuildPath(Path, forFile)) Then Exit Function   
   
   If Len(Entry) Then                  ' Если комментарий был найден
     
      ' Добавляем имя описываемого файла в формате 8.3
      Dim aFile

      Set aFile = Fso.GetFile(Fso.BuildPath(Path, forFile))
      Entry = WIN2DOS(aFile.ShortName & " " & Entry)
     
      tmp = ""
      If Fso.FileExists(TargetION) Then     ' Если уже есть файл FILES.BBS
         Set TS2 = Fso.OpenTextFile(TargetION, ForReading)
         tmp = TS2.ReadAll & vbCrLf    ' Добавим перевод строки на всякий пожарный
         TS2.Close
      End If
     
      dscNew = tmp & Entry
     
      On Error Resume Next
      Set TS2 = Fso.OpenTextFile(TargetION, ForWriting, True)
      TS2.Write dscNew                 ' Пишем целевой файл файл
      TS2.Close
   End If
   
   Set TS2 = Nothing
   ' Возвратим True, если это был действительно FlashGet-овский LOG
   FilesBBSFromLOG = CBool(IsFlashLOG = 4)
   
End Function

Function WIN2DOS(InputText)
   
   Const win = "абвгдежзийклмнопрстуфхцчшщъыьэюяёАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁ"
   Const dos = " ЎўЈ¤Ґ¦§Ё©Є«¬­®ЇабвгдежзийклмнопсЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—˜™љ›њќћџр"
   Dim tmp, i, pos, char
   
   For i = 1 To Len(InputText)
      char = Mid(InputText, i, 1)
      pos = InStr(1, win, char)
     
      If pos > 0 Then
         tmp = tmp & Mid(dos, pos, 1)
      Else
         tmp = tmp & char
      End If

   Next
   
   WIN2DOS = tmp
   
End Function

'=========================[  End of file  ]=========================


Last edited by Volniy on Wed Apr 13, 2005 12:51; edited 4 times in total
Back to top
View user's profile Send private message
log2bbs



Joined: 03 Feb 2005
Posts: 5

Post (Separately) Posted: Tue Feb 08, 2005 09:44    Post subject: Reply with quote

Выложил новую версию Log2Bbs - http://www.argyment.ru/fmt/Log2bbs_1-05.rar

Список изменений:

[!] "Если имя файла с русскими буквами, то в Descript.ion оно в виндовой кодировке, а комментрий, как и положено, в Досовой". Исправлено.

[*] Если в конце файла описания не стоит перевод строки (как делает TotalCommander) - то теперь эта ситуация обрабатывается корректно, и перевод сроки вставляется при необходимости.

[+] "А длинные имена с пробелами прогу не напугают. Она их вставит с
кавычками в Descript.ion?". Теперь не напугают.

[!] Некорректно обрабатывалась ситуация, когда в параметрах передавалось просто имя файла из текущего каталога (без полного пути).
Back to top
View user's profile Send private message
log2bbs



Joined: 03 Feb 2005
Posts: 5

Post (Separately) Posted: Tue Feb 15, 2005 15:21    Post subject: Reply with quote

Выложил обновление Log2Bbs - http://www.argyment.ru/fmt/Log2bbs_1-06.rar

Изменения:
[!] Программа глючила, если файл описаний был нулевого размера.
[+] После обработки, файл описаний делается скрытым.
[+] При вызове с параметром /? - выводится краткая помощь.
Back to top
View user's profile Send private message
roman78



Joined: 24 Jan 2005
Posts: 20

Post (Separately) Posted: Tue Apr 05, 2005 05:32    Post subject: Reply with quote

log2bbs
bbs создает, но в формате description Smile

Volniy
не сочти за наглость... а можно ли в bbs вставить не только коммент, но и урл с датой?
Back to top
View user's profile Send private message
log2bbs



Joined: 03 Feb 2005
Posts: 5

Post (Separately) Posted: Tue Apr 05, 2005 05:38    Post subject: Reply with quote

roman78 wrote:
log2bbs
bbs создает, но в формате description Smile

А какой формат у bbs? Я, честно говоря, предполагал, что дело только в расширении.. Confused
Back to top
View user's profile Send private message
roman78



Joined: 24 Jan 2005
Posts: 20

Post (Separately) Posted: Tue Apr 05, 2005 05:57    Post subject: Reply with quote

Sad эта... чета с кодировкой не то творится... строки win\dos в скрипте правильные, а в bbs не то...
извини, не заморачивайся - буду как все дескрипшины делать.
Back to top
View user's profile Send private message
roman78



Joined: 24 Jan 2005
Posts: 20

Post (Separately) Posted: Tue Apr 05, 2005 06:10    Post subject: Reply with quote

log2bbs

такой коммент:
Code:
это 1-я срока
это 2-я строка
это 3-я строка
это 4-я строка


выглядит так:
Code:
LOG2BB~1.RAR нв® 1-п ба®Є 
             | нв® 2-п бва®Є 
             | нв® 3-п бва®Є 
             | нв® 4-п бва®Є
Back to top
View user's profile Send private message
log2bbs



Joined: 03 Feb 2005
Posts: 5

Post (Separately) Posted: Tue Apr 05, 2005 06:34    Post subject: Reply with quote

roman78

А файлик "code_win" присутствует?
Я сейчас нашел ошибку, когда у первой и остальных строках комментария могут быть разные кодировки. Но не у всех строк одновременно.
Обновление выложил.
http://www.argyment.ru/fmt/Log2bbs_1-07.rar
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Fri Apr 08, 2005 00:12    Post subject: Reply with quote

roman78 wrote:
Volniy
не сочти за наглость... а можно ли в bbs вставить не только коммент, но и урл с датой?

Счел за разминку Smile после вынужденного перерыва. Код скрипта уже изменен. Тестируй.
Back to top
View user's profile Send private message
roman78



Joined: 24 Jan 2005
Posts: 20

Post (Separately) Posted: Tue Apr 12, 2005 18:55    Post subject: Reply with quote

парни, не обижайтесь плз, последнее время редко до компа добараюсь... а в конце недели и вовсе в больницу на месяц Sad.

Volniy
а не заметно Smile добавляется все также только коммент и с кодировкой грабли: буржуйский в норме, кириллицу колбасит.

log2bbs
>А файлик "code_win" присутствует?
не в этом проблема, смысл bbs в поддержке многострочности (ну и безразмерности, в отличие от дескрипшена), а в создаваемом утилитой bbs все в одну строку, что неудобно. И имя файла в этом случае в формате 8.3.
Back to top
View user's profile Send private message
Volniy



Joined: 15 Dec 2004
Posts: 585
Location: Местный

Post (Separately) Posted: Wed Apr 13, 2005 00:19    Post subject: Reply with quote

roman78 wrote:

Volniy
а не заметно Smile добавляется все также только коммент и с кодировкой грабли: буржуйский в норме, кириллицу колбасит.

Блин, ну никто и никогда не читает комментариев Sad
Специально для тебя изменил код, раз ты сам боишься этим заниматься. А что касается кириллицы, то это глючит строка символов в константе dos= (искажается при размещении на странице форума). Рекомендую: возьми строку win= и перекодируй ее сам в досовскую кодировку и вставь в скрипт, тогда ошибок не должно быть. Или давай мыло, вышлю скрипт напрямую.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page Previous  1, 2, 3, 4  Next
Page 3 of 4

 
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