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 и черех комментарии.