Страница 2 из 7
Добавлено: Пт авг 25, 2006 09:40
Batya
fa1con
Я так понимаю плагин запускает скрипт FilesInList.vbs для каждого директории. Это довольно долго. Поэтому пользоваться я этим не буду.
Все верно. И пользоваться действительно надо по необходимости.
Чтоб избавиться от тормозов предлагаю переписать скрипты "добавления"/"удаления" так что б он дописывал/удалял в/из комментария выделенных файлов какую-то строчку ("№;%:% например). Тогда можно будет настроить выделения цветом по "комментарий содержит". Так намного быстрее и плагина не надо. Одно плохо – комменты поганятся.
В принципе, можно было бы сделать, если это кому-нибудь надо. И можно
добавлять в начало или конец комментария что-нибудь более-менее красивое, например, ####. Тогда и коменты не будут поганиться.
Добавлено: Пт авг 25, 2006 10:31
A.N.T.
Batya, а с чем связано, то что цвет не сразу появляется(нужно перезайти в папку)?
Добавлено: Пт авг 25, 2006 10:40
Batya
A.N.T.
Не знаю.
У меня на левой панели сразу цвет менялся, а на правой приходилось перезаходить.
Добавлено: Пт авг 25, 2006 14:08
Batya
fa1con писал(а):Чтоб избавиться от тормозов предлагаю переписать скрипты "добавления"/"удаления" так что б он дописывал/удалял в/из комментария выделенных файлов какую-то строчку ("№;%:% например). Тогда можно будет настроить выделения цветом по "комментарий содержит". Так намного быстрее и плагина не надо. Одно плохо – комменты поганятся.
Ну что ж, написал.
Добавление в комментарий:
Код: Выделить всё
'==============================================================================
' Добавление в начало комментария (descript.ion) ####
'
' В качестве параметров указать:
' %L "%Pdescript.ion"
'==============================================================================
Option Explicit
If WScript.Arguments.Count < 2 Then
MsgBox "Не указаны параметры - %L ""%Pdescript.ion""", _
vbOKOnly + vbExclamation, _
"Добавление #### в комментарий"
WScript.Quit
End If
Dim FSO, oTextFile, AllText, OTF, FileName, CommFile, CommLabel, BegFile, BegFileComm
Set FSO = CreateObject("Scripting.FileSystemObject")
Set OTF = FSO.OpenTextFile(WScript.Arguments(0), 1)
CommFile = WScript.Arguments(1)
CommLabel = "####"
AllText = ""
If FSO.FileExists(CommFile) Then
Set oTextFile = FSO.OpenTextFile(CommFile, 1)
On Error Resume Next 'Игнорируем ошибку, если файл пустой
AllText = oTextFile.ReadAll
On Error GoTo 0
oTextFile.Close
End If
Do While Not OTF.AtEndOfStream
FileName = OTF.ReadLine
If FSO.FileExists(FileName) Then
FileName = FSO.GetFile(FileName).Name
Else
FileName = FSO.GetFolder(FileName).Name
End If
If InStr(1, FileName, " ", 1) > 0 Then
FileName = """" & FileName & """"
End If
BegFile = InStr(1, vbNewLine & AllText, vbNewLine & FileName & " ", 1)
If BegFile > 0 Then
BegFileComm = BegFile + Len(FileName) + 1
If InStr(1, Mid(AllText, BegFileComm, Len(CommLabel)), CommLabel, 1) = 0 Then
AllText = Left(AllText, BegFileComm - 1) & CommLabel & " " & Mid(AllText, BegFileComm)
Set oTextFile = FSO.OpenTextFile(CommFile, 2)
oTextFile.Write AllText
oTextFile.Close
End If
Else
Set oTextFile = FSO.OpenTextFile(CommFile, 8, 2)
If Right(AllText, Len(vbNewLine)) <> vbNewLine Then
oTextFile.WriteLine
AllText = AllText & vbNewLine
End If
oTextFile.Write FileName & " " & CommLabel
oTextFile.Close
AllText = AllText & FileName & " " & CommLabel
End If
Loop
OTF.Close
Set oTextFile = Nothing
Set OTF = Nothing
Set FSO = Nothing
WScript.Quit
Удаление из комментария:
Код: Выделить всё
'==============================================================================
' Удаление в начале комментария (descript.ion) ####
'
' В качестве параметров указать:
' %L "%Pdescript.ion"
'==============================================================================
Option Explicit
If WScript.Arguments.Count < 2 Then
MsgBox "Не указаны параметры - %L ""%Pdescript.ion""", _
vbOKOnly + vbExclamation, _
"Удаление #### в комментарии"
WScript.Quit
End If
Dim FSO, oTextFile, AllText, OTF, FileName, CommFile, CommLabel, BegFile, BegFileComm, EndFileComm
Set FSO = CreateObject("Scripting.FileSystemObject")
Set OTF = FSO.OpenTextFile(WScript.Arguments(0), 1)
CommFile = WScript.Arguments(1)
CommLabel = "####"
AllText = ""
If FSO.FileExists(CommFile) Then
Set oTextFile = FSO.OpenTextFile(CommFile, 1)
On Error Resume Next 'Игнорируем ошибку, если файл пустой
AllText = oTextFile.ReadAll
On Error GoTo 0
oTextFile.Close
End If
Do While Not OTF.AtEndOfStream
FileName = OTF.ReadLine
If FSO.FileExists(FileName) Then
FileName = FSO.GetFile(FileName).Name
Else
FileName = FSO.GetFolder(FileName).Name
End If
If InStr(1, FileName, " ", 1) > 0 Then
FileName = """" & FileName & """"
End If
BegFile = InStr(1, vbNewLine & AllText, vbNewLine & FileName & " ", 1)
If BegFile > 0 Then
BegFileComm = BegFile + Len(FileName) + 1
If InStr(1, Mid(AllText, BegFileComm, Len(CommLabel)), CommLabel, 1) > 0 Then
AllText = Left(AllText, BegFileComm - 1) & Mid(AllText, BegFileComm + Len(CommLabel))
'Удаление лишних пробелов
If Instr(BegFile, AllText, FileName & " ", 1) > 0 Then
AllText = Left(AllText, BegFileComm - 2) & Mid(AllText, BegFileComm)
End If
'Удаление пустых комментариев
If Instr(BegFile, AllText & vbNewLine, FileName & " " & vbNewLine) > 0 Then
AllText = Left(AllText, BegFile - 1) & Mid(AllText, BegFile + Len(FileName & " " & vbNewLine))
End If
'Удаление лишних концевых строк
If Right(AllText, Len(vbNewLine)) = vbNewLine Then
AllText = Left(AllText, Len(AllText) - Len(vbNewLine))
End If
Set oTextFile = FSO.OpenTextFile(CommFile, 2)
oTextFile.Write AllText
oTextFile.Close
End If
End If
Loop
OTF.Close
Set oTextFile = Nothing
Set OTF = Nothing
Set FSO = Nothing
WScript.Quit
Настройте шаблон для цвета - плагин "tc", "Комментарий", "содержит", "####".
У кого тачки слабые, сравните, пожалуйста, скорость работы через плагин ScriptContent и черех комментарии.
Добавлено: Пт авг 25, 2006 17:36
fa1con
Всё работает быстро. Ещё было бы прикольно запихнуть это в один скрипт и писать коментарий не в начало, а в конец. А так рулллез! Буду юзать.
Добавлено: Пт авг 25, 2006 17:43
Batya
fa1con
В один скрипт точно сливать не буду - смысла особого нет.
А помещать метку в конец комментария возможно. В понедельник покопаюсь.
Добавлено: Пт авг 25, 2006 17:56
A.N.T.
А мне больше с плагином нравится... Потому что выделяется не только файл, но и все предыдущие директории...

Добавлено: Пт авг 25, 2006 18:07
Batya
A.N.T. писал(а):А мне больше с плагином нравится... Потому что выделяется не только файл, но и все предыдущие директории...
Что значит "предыдущие"?
Комментарии к папкам также работают. Если у тебя ошибка при работе с папками, сохрани скрипты еще раз из поста выше - я там кое-что менял.
Добавлено: Пт авг 25, 2006 18:14
fa1con
Batya писал(а):fa1con
В один скрипт точно сливать не буду - смысла особого нет.
Как нет? Есть – один хоткей вместо двух.
Ещё можно удалять пустой descript.ion, как это делает Тотал.
Добавлено: Пт авг 25, 2006 18:21
A.N.T.
Что значит "предыдущие"?
Блин, не знаю какое слово бы подобрать , короче я помечаю файл, та директория в которой он находится, тоже "светится", -> директория, в которой находится "светящаяся директория" тоже светится.......

Добавлено: Пт авг 25, 2006 18:31
Batya
fa1con писал(а):Как нет? Есть – один хоткей вместо двух.
Э нет. Мне такой подход очень не нравится.
Например, если выделить часть файлов, для которых есть комментарий, и часть файлов, для которых нет комментария, и выполнить команду, что скрипт должен делать?
fa1con писал(а):Ещё можно удалять пустой descript.ion, как это делает Тотал.
Это можно.
A.N.T. писал(а):Блин, не знаю какое слово бы подобрать , короче я помечаю файл, та директория в которой он находится, тоже "светится", -> директория, в которой находится "светящаяся директория" тоже светится.......
Это как же у тебя так получилось? А descript.ion для родительских папок содержит комментарий ####? Если нет, то значит ты как-то хитро настроил шаблон. Проверь еще раз.
Добавлено: Пт авг 25, 2006 18:42
A.N.T.
А descript.ion для родительских папок содержит комментарий ####?
(родительские-точно

). descript.ion'a вообще нет в родительских папках.
Шаблон правильно настроил... Разве когда я помечаю файл твоим скриптом, в родительских директориях должен тоже descript.ion создаваться? + у меня почему то descript.ion без атрибута "скрытый"...
Добавлено: Пт авг 25, 2006 18:46
Batya
A.N.T. писал(а):Разве когда я помечаю файл твоим скриптом, в родительских директориях должен тоже descript.ion создаваться?
Вот именно, что не должен. А раз нет descript.ion, то и подцвечиваться не должно. Значит ты шаблон все-таки неправильно настроил. Это уже не мой скрипт, это Тотал так работает по настроенному тобой шаблону.
A.N.T. писал(а):у меня почему то descript.ion не скрытым становится...
Ага, я уже видел. В понедельник исправлю.
Добавлено: Пт авг 25, 2006 19:01
A.N.T.
Никак не могу понять, твой скрипт должен подсвечивать родительские директории или нет? Было бы очень даже круто...Без плага можно было б юзать + файлы/папки сразу закрашивались...
Шаблон:
Плагин: tc
Свойство: Комментарий
Операция: содержит
Значение: ####
Код: Выделить всё
Метка_SearchFor=
Метка_SearchIn=
Метка_SearchText=
Метка_SearchFlags=0|000002000020|||||||||0000
Метка_plugin="tc.comment contains ####"
Добавлено: Пт авг 25, 2006 23:17
fa1con
Например, если выделить часть файлов, для которых есть комментарий, и часть файлов, для которых нет комментария, и выполнить команду, что скрипт должен делать?
Инвертировать. А-ля * для коммандеровского выделения. А хотя хрен его знает как удобнее. Для меня вроде было бы удобнее так. Хотя с другой стороны, если в каталоге куча файлов помечено и хочется с них всех эти метки снять, тогда лучше как сейчас сделано. Ещё, как вариант, можно выполнять действие для файла под курсором.