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

Добавлено: Пт май 29, 2015 11:36
KatMuse
Flasher
Большое Вам спасибо за скрипт!!!
Скажите, а можно не перезаписывать, а дописывать с проверкой, отвечая на Ваш вопрос - перезапись пугает?
То есть:
Если комменатрия нет, то создавать и в верхнии папки дописывать не сам комментарий, а "--->", потом проверять если последовательность "--->" есть, то пропускаем, а если нет, то дописываем её первой строкой, то есть всегда анализируем первую строку. В идеале, добавить счётчик, то есть "[5]--->", значит в подпапках 5 ссылок, а потом счётчик инкрементировать.
Иными словами, можно ли к верхним папкам дописывать первой строкой комментарий "--->". Тогда и одинаковыпи папками вопрос решится, потому что комбинация "--->" и "Есть сслыка" (на второй строке) красится хорошо независимо от цветов для "--->" и "Есть сслыка". Получается, что мы можем и сослаться на папку и она может быть элементом пути одновременно.
E:\Фото ("--->", зел.)\Лето - 2015 ("--->", зел.)\
IMG_2015.07.01.jpg ("Есть ссылка", красн.)
IMG_2015.07.02.jpg ("Есть ссылка", красн.)
Неразобрано ("1:---> 2:Есть ссылка", коричн.)\IMG_2015.07.jpg ("Есть ссылка", красн.)

Неразобрано ("1:---> 2:Есть ссылка", коричн.)
В скобках комментарий, 1: первая строка, через запятую - цвет.

Flasher, ещё раз Вам спасибо за доброту и отзывчивость!

Добавлено: Пт май 29, 2015 15:22
Flasher
KatMuse
Пожалуйста. :wink:
Комментарий не перестаёт быть комментарием в контексте интерфейса, если в нём отражены любые допустимые символы.
С константой для родителей ясно. Не понял про анализ первой строки. О какой первой строке идёт речь?
И перезапись в случае несовпадения всё равно нужна по всей логике.
И что даст счётчик в отношении оцветовки? Какую полезную нагрузку он несёт? Пока не вижу, правлю без:
[cut="AddOrRenewComments.vbs"]

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

'===============================================================================
' Добавить/обновить комментарий для объекта под курсором и вышестоящих каталогов

' Параметр: %V [<комментарий к выш. каталогам>] [<комментарий к объекту(необ.)>]
' Примеры:  %V select  |  %V <--> Green  |  %V >>>> "Red Color"

' Автор: Flasher ©
'===============================================================================
Option Explicit : Dim Arg, File, Com, ComC, Header, ChS, FiSplit, FSO,_
TCIni, Filt, Enc, Key, FCom1, FCom2, H, N, Path, c, F1, F2, ComF, PPath
Set Arg = WScript.Arguments :  File = Arg(0) : If Arg.Count = 3 Then Com = Arg(2)
ComC = Arg(1) : Header = " Добавление комментария к файлу под курсором"
If Com = "" Then Com = InputBox(String(5, vbCr) & "Введите комментарий:", Header)
If Trim(Com) = "" Then WScript.Quit :End If: ChS = Array("windows-1251", "cp866")
FiSplit = Split(File, "\") : Set FSO = CreateObject("Scripting.FileSystemObject")
TCIni = CreateObject("WScript.Shell").ExpandEnvironmentStrings("%COMMANDER_INI%")
Filt = Filter(Split(FSO.OpenTextFile(TCIni).ReadAll, vbnewline), "CopyComments=")
Enc = ChS(0) : Key = 2 : If Ubound(Filt) = 0 Then Key = Mid(Filt(0), 14)
If Key/2 = Int(Key/2) Then FCom1 = "descript.ion" : FCom2 = "files.bbs"_
Else FCom1 = "files.bbs" : FCom2 = "descript.ion" : Enc = ChS(1) : H = 2

For Each N in FiSplit
  Path = FSO.BuildPath(Path, N) & "\"
  If Not IsEmpty(PPath) Then
    c = c + 1 : F1 = PPath & FCom1 : F2 = PPath & FCom2
    If c < Ubound(FiSplit) Then ComF = ComC Else ComF = Com
    If FSO.FileExists(F1) Then
      AddComment F1, N, 0
    ElseIf FSO.FileExists(F2) Then AddComment F2, N, 1
    Else
      If FCom1 = "files.bbs" Then
        N = UCase(N)
      ElseIf InStr(N, " ") Then N = """" & N & """" End If
      With CreateObject("ADODB.Stream")
        .Open : .Charset = Enc : .WriteText N & " " & ComF & vbNewLine
        .SaveToFile F1, 2 : .Close
      End With : FSO.GetFile(F1).Attributes = 34 - H
    End If
  End If : PPath = Path
Next

Sub AddComment(F, FN, Test)
  Dim Fl, Name, All, Find, Find2, T, NL
  If Test Then
    Select Case Enc : Case ChS(0) Enc = ChS(1)
    Case ChS(1) Enc = ChS(0) End Select
  End If : Set Fl = FSO.GetFile(F) : Fl.Attributes = 32 : Name = Fl.Name
  If Name = "descript.ion" And InStr(FN, " ") Then FN = """" & FN & """"
  If Name = "files.bbs" Then FN = UCase(FN)
  With CreateObject("ADODB.Stream")
    .Mode = 3 : .Charset = Enc : .Open
    .LoadFromFile F : All = .ReadText : Find2 = InStr(All, FN & " " & ComF)
    If Not Find2 Then
      Find = InStr(All, FN & " ")
      If Find > 1 Then Find = InStr(All, vbLf & FN & " ") : T = 1
      NL = 0 : If Right(All, 1) <> vbLf Then NL = 1
      If Find Then
        .Position = Find + Len(FN) + T : All = Mid(All, Find)
        .SetEOS : .WriteText ComF & Mid(All, InStr(All, vbNewLine))
      Else .Position = Len(All) : .WriteText FN & " " & ComF & vbNewLine, NL
      End If : .SaveToFile F, 2
    End If : .Close
  End With : If Name = "descript.ion" Then Fl.Attributes = 34
End Sub
[/cut]

Добавлено: Сб май 30, 2015 11:57
KatMuse
Flasher, я так рад! Огроменное Вам спасибо! Чувствую, что скоро мечта осуществится!
Только получается, что если я добавляю (через скрипт) комментарий к папке, которая уже содержит указатель (указатель, что дальше файл с комментарием), то комментарий перезаписывается и указатель теряется.

E:\Фото ("--->")\Лето - 2015 ("--->")\
IMG_2015.07.01.jpg ("Есть ссылка")
IMG_2015.07.02.jpg ("Есть ссылка")
Неразобрано ("--->")\IMG_2015.07.jpg ("Есть ссылка")
Если я хочу добавить комментарий к папке "Неразобрано" с помощью скрипта, то "--->" затирается и получается, что добавляется "Есть ссылка", а "--->" исчезает...
А так всё замечательно! И к нескольким файлам можно ссылки добавлять и ещё можно текст встраивать, то есть не вводить руками каждый раз! Скажите, а есть какой-нибудь символ перевода каретки, чтобы несколько строчек добавить в строку.
И что даст счётчик в отношении оцветовки? Какую полезную нагрузку он несёт?
Счётчик, мне подумалось, что будет удобно в том смысле, что оценить возможные "потери", при переименовании, то есть если нужно переименовать папку, а там внутри 243 файла со ссылками, то её вообще трогать нельзя даже если у неё имя "вдыдвао", а если такое имя и 10 ссылок, то проще переименовать, а ссылки поправить.
Благодаря Вам чувствую себя повелителем своего жёстокого диска :)))) Теперь если нужен дубликат файла - ссылкочку раз, а если нужна папка в двух места - ссылочку двас :) Теперь осталось понять, что переименовывать нельзя, а что можно и будет расчудесно!!!!

Добавлено: Сб май 30, 2015 20:28
Flasher
По поводу папки. Советую подумать, т.к. имя папки или содержимое в ней тоже иногда трогать не нужно, поэтому речь и идёт об объекте под курсором, а не лишь о файле.
И зачем трогать папку, которая уже помечена цветом? :? Идея-то индикации в чём была? Т.е. логика должна подсказывать, что этого делать не нужно, либо это делается осознанно с рассмотрением папки под курсором именно в качестве объекта для обновления комментария.

Для descript.ion перевод строки это \n. Но не для files.bbs. В контексте индикации неясно, для чего тут вообще более одной строки? Чем меньше текста, тем быстрее будут красится элементы.

Что касается счётчика. А не проще тогда его сразу вместо ---> писать?
Мне-то уж точно будет проще. :) К тому же можно сразу красить папки по диапазонам с пом. регулярок.

Добавлено: Пн июн 01, 2015 22:55
KatMuse
Flasher, можно уточнить, мучался-мучался, но "Первая строка\nВторая строка" так и добавляются в комментарий как "Первая строка\nВторая строка". А парочка строк нужна для удобства чтения. Первой строкой пишу ключевое слова, то есть Есть ссылка - Путь или Есть ссылка - Имя, а на второй строке пишу, собственно где и что.
И зачем трогать папку, которая уже помечена цветом?
Это если в подпапках ничего не будет (в плане ссылок) или будет одна две, которые можно быстро исправить, если папку нужно переименовать. Строго говоря, предложенный вариант работает чудесным образом (всё протести - я в восторге), но это такой предохранитель.
Можно вопрос, а зачем нужен files.bbs и в чём разница? То есть, я понимаю, что комментарий, но вообще удобней всего в потоках всё хранить (просматривать можно AkelPad'ом) и перемещать в разы удобнее. Просто интересно.
Что касается счётчика. А не проще тогда его сразу вместо ---> писать?
А можно в скобочки его взять или как-то подчеркнуть, а то буду думать к чему здесь это число, то есть хотя бы так [4] или _4_.

Спасибо Вам, Flasher!

Добавлено: Пн июн 01, 2015 23:40
Flasher
KatMuse писал(а):мучался-мучался
Забыл уточнить, что в конец второй строки ещё 'В' нужно дописать. Первый символ не видно, выглядит он примерно так: ┘.
KatMuse писал(а):А парочка строк нужна для удобства чтения.
Зачем вообще читать, если уже цветом помечено? И то, о чём я выше писал про замедление скорости обновления списка, никак не останавливает? Рекомендую обходиться без этого. Плюс ко всему для files.bbs придётся делать лишние движения.
KatMuse писал(а):а на второй строке пишу, собственно где и что.
Это касаемо OneNote или EverNote? А что это за ссылки и какая у них связь с запретностью правки файлов? Что меняет наличие или отсутствие этих ссылок?
KatMuse писал(а):Это если в подпапках ничего не будет (в плане ссылок)
Как это не будет? А откуда возьмётся ---> или номер счётчика? Из воздуха? :D
KatMuse писал(а):или будет одна две
Если будет, значит, и оцветовка будет. Не вижу проблемы.
KatMuse писал(а):Можно вопрос, а зачем нужен files.bbs и в чём разница?
См. справку. Там всё подробно расписано.
KatMuse писал(а):но вообще удобней всего в потоках всё хранить
Какая связь у потоков и правки по Ctrl+Z? И какие могут быть потоки на флешке, скажем, с FAT32 или extFAT?
KatMuse писал(а):а то буду думать к чему здесь это число
Думать? Серьёзно? :D Сложно запомнить, что число - это кол-во запретных файлов в помеченной цветом папке? :) И, повторюсь, не будет смысла смотреть в комментарий, если папка уже помечена диапазонным цветом. Если вдруг действительно возможен риск развития амнезии или старческого склероза, то прибегнуть к пользовательским подсказкам, где будет вводный текст аля "Число файловых меток: ", думается, труда не составит.

Добавлено: Ср июн 03, 2015 23:01
KatMuse
Забыл уточнить, что в конец второй строки ещё 'В' нужно дописать.
Ничего себе 0.0 ... Получилось... Жуть какая... Спасибо!
И то, о чём я выше писал про замедление скорости обновления списка, никак не останавливает?
Просто скорость не упала - добавил 3 цветовые схемы для тестов: "--->", "Есть ссылка - путь" и "--->\nЕсть ссылка - путь" и всё хорошо, гланое быстро, работает. То есть, когда много будет, то всё будет тормозить?
Это касаемо OneNote или EverNote? А что это за ссылки и какая у них связь с запретностью правки файлов? Что меняет наличие или отсутствие этих ссылок?
Да, записные книжки OneNote :) Жаль, если вдруг ссылки пропадут в этих записных книжках.
Как это не будет? А откуда возьмётся ---> или номер счётчика? Из воздуха?
То есть, папка покрашена так, что внутри есть ссыки. Я зашёл в неё, а там две ссылки. Хорошо. Исправил их, а папку переименовал. Потом выяснилось, что ещё на саму папку была ссылка. Или папка покрашена, а ссылок внутри уже нет - переименовываю папку и... То есть, если производить манипуляции внутри папки, то счётчик же от этого не изменится. С одной стороны, а зачем он тогда нужнен, но с другой, желательно иметь применую оценку. В общем, лучше папк третий цвет для комбинации ссылка внутри и комментарий для папки не вводить, правильно?
Какая связь у потоков и правки по Ctrl+Z?
Мне казалось, что потоки удобнее, но их редактировать сложнее и они хуже поддаются автоматизации. А комменатрий, если он в файле, при копировании теряется.
И какие могут быть потоки на флешке, скажем, с FAT32 или extFAT?
Про FAT32 согласен, а про ext... разве TC есть по Linux?
вводный текст аля "Число файловых меток: "
Спасибо! Согласен полностью!

Добавлено: Чт июн 04, 2015 03:11
Flasher
KatMuse писал(а):То есть, когда много будет, то всё будет тормозить?
Будет медленней обновляться список при переходе в папки или Ctrl+R.
KatMuse писал(а):Жаль, если вдруг ссылки пропадут в этих записных книжках.
Так я не пойму, запретность зависит от наличия ссылок в зап. книжках? Так а если пропадут, то цвет и комментарий никуда не денутся. И какой от них тогда будет толк?
KatMuse писал(а):Хорошо. Исправил их, а папку переименовал.
Тогда придётся пройти весь путь с удалением всех комментариев. Комментарий же к самой папке придётся править перед переименованием.
KatMuse писал(а):В общем, лучше папк третий цвет для комбинации ссылка внутри и комментарий для папки не вводить, правильно?
Мы третий цвет пока вообще не обсуждали. Сейчас речь о необходимости держать эти ссылки в комментарии. Да и по какому критерию потом отделять такие вещи цветом?
KatMuse писал(а):А комменатрий, если он в файле, при копировании теряется.
Кто мешает в настройках поставить опцию "Копировать комментарии с файлами"?
KatMuse писал(а):Про FAT32 согласен, а про ext... разве TC есть по Linux?
ТС - это не виртуальная машина какая-то, это всего лишь оболочка для ОС. А вот современные версии ОС Windows поддерживают exFAT, которая для флешек и была разработана, и к Linux-системам она отношения не имеет.

P.S.: Счётчик сделаю, когда с остальным всё решим окончательно.

Добавлено: Чт июн 04, 2015 10:03
KatMuse
Кто мешает в настройках поставить опцию "Копировать комментарии с файлами"?
*facepalm*
СПАСИБО!!!!...!!!!^1000 Если бы Вы только знали...
Так я не пойму, запретность зависит от наличия ссылок в зап. книжках?
Да, в записных книжках и других программа, которые могут включать в себя ссыки на файлы.
Так а если пропадут, то цвет и комментарий никуда не денутся. И какой от них тогда будет толк?
Пропадут, иммеется ввиду, ссылки в записной книжки станут не рабочие из-за переименования файла. Я не удаляю и не изменяю ссылки в записных книжках никогда, просто ставлю новую дату ниже и делаю нужную ссылку, чтобы можно было смотреть историю.
Да и по какому критерию потом отделять такие вещи цветом?
Один цвет для "tc содержит --->"
Другой для "Есть ссылки - Пути к файлам"
Третий для "tc содержит --->" И "Есть ссылки - Пути к файлам"
Работает нормаль - красит требя цветами. Если есть ссылки глубже, то один цвет, если сослались сам файл или папку, то другой и если всё вместе, то третий. Скорость обновления нормальная, хотя не так их и много, конечно, этих ссылок.

Добавлено: Чт июн 04, 2015 11:17
Flasher
KatMuse писал(а):Я не удаляю и не изменяю ссылки в записных книжках никогда
:shock: Тогда какой смысл помеченный файл переименовывать, если
KatMuse писал(а):Общая постановка задачи не допустить переименования, перемещения нужных файлов
:?:
KatMuse писал(а):Скорость обновления нормальная, хотя не так их и много, конечно, этих ссылок.
Она везде нормальная? Если зайти в каталог с большим числом папок/файлов (напр. sytem32 или winsxs), то как?

Добавлено: Чт июн 04, 2015 14:11
KatMuse
Тогда какой смысл помеченный файл переименовывать, если
Не изменяю, если всё правильно, имелось ввиду. То есть, если ссылки нужно перегруппировать или я начал что-то делать, а процессе работы выяснилось, что нужно переименовать-перенести. Когда я отвечал, то имел ввиду контекст, что ссылки пропадают, то есть, насколько я понял, Вы имели ввиду, что я буду чистить записную книжку и удалю их. Я так не поступаю.
Она везде нормальная? Если зайти в каталог с большим числом папок/файлов (напр. sytem32 или winsxs), то как?
В этом каталоге у меня нет ниодного комментария к папке или файлу, но шаблоны я не изменял (то есть, если были бы то подкарсил) - всё быстро. Подкрасил файлы - на меньше секунду задумался. Всё нормально, хотя машина и не новая.
Общая постановка задачи не допустить переименования, перемещения нужных файлов.
Это я сугубо для себя решил, а к исходной задачи, её изменениям она не имеет отношения.

Добавлено: Чт июн 04, 2015 14:58
Flasher
KatMuse писал(а):Это я сугубо для себя решил
Только вот не окончательно, вдруг неопределённость появилась. Куча лишних манипуляций с потенциальным изменением ссылок или имён файлов/папок, уход от общей автоматизации.

"Есть ссылки - Пути к файлам". Можно пояснить, о каких файлах речь? Их сюда никак не вставить без самостоятельной правки?

Добавлено: Чт июн 04, 2015 15:24
KatMuse
Только вот не окончательно, вдруг неопределённость появилась. Куча лишних манипуляций с потенциальным изменением ссылок или имён файлов/папок, уход от общей автоматизации.
Неопределённости, насколько я понимаю, нет. К сожалению, не очень понял какая не определённость имеется ввиду.
Предыдущий скрипт работает практически замечательно, только жаль, что нет возможности дописывать в конец, а не переписывать комментарий в случае если добавляется что-то отличное от "--->" и счётчика не хватает, а так всё замечательно. То как он работает не противоречит, а наоборот очень сильно помогает при работе с записными книжками, потому всё хорошо.
"Есть ссылки - Пути к файлам". Можно пояснить, о каких файлах речь? Их сюда никак не вставить без самостоятельной правки?
Есть три типа комментария: "--->", "Есть ссылка" (можно назвать, "Есть ссылка - путь", можно "Есть ссылка - пути к файлам", это нужно, чтобы в TC, в шаблоне указать этот текст для раскраски), насколько я вижу мы до этого обсуждали в этих же терминах, "--->\nЕсть ссылка". Для последнего типа желательно дописывать в конец, а для первого желательно проверить первую строку и если она отличается от "--->", то дописать в начало, а если = то оставить как есть.

Добавлено: Чт июн 04, 2015 16:26
Flasher
KatMuse писал(а):К сожалению, не очень понял какая не определённость имеется ввиду.
Заключается она в том, что сперва было написано, что файлы запретные, а потом выяснилось, что не совсем, то бишь в процессе могут подлежать переименованию и т.д.
KatMuse писал(а):нет возможности дописывать в конец, а не переписывать комментарий в случае если добавляется что-то отличное от "--->"
Так уже неясно, в каком контексте дописывать, коли вариантов 3.
KatMuse писал(а):это нужно, чтобы в TC, в шаблоне указать этот текст для раскраски
Это не ответ на вопрос "о каких файлах речь?". Шаблон в любом случае должен иметь адекватное в соответствии с поведением имя. Я хочу понимать, что есть "путь" и что есть "пути к файлам".

Добавлено: Чт июн 04, 2015 17:45
KatMuse
Flasher,
файлы запретные, а потом выяснилось, что не совсем, то бишь в процессе могут подлежать переименованию и т.д.
Если:
1. На файл есть ссылки в нескольких программах
2. Если папка содержит много файлов, на которые есть ссылки
то:
файл/папка запретные.
Если:
Имя файла/паки мешает его поиску (пример, ajflsa) И все предыдущие пункты не выполнены
то:
переименовываем файл/папку и изменяем ссыки.
Так уже неясно, в каком контексте дописывать, коли вариантов 3.
Необходимо добавить:
1. "--->"
2. "Есть ссылка"
(*)
Если необходимо добавить "--->":
"--->" всегда дописываем только в начало, то есть первой строкой.
"--->" дописываем (первой строкой), если Первая строка <> "--->" (<> значит там записано "Произвольный текст").
В противном случае (Первая строка = "--->"), перезаписываем первую строку.
Пример:
1. Было "--->", стало "--->"
2. Было "Произвольный текст", стало "--->\nПроизвольный текст". Если произвольные тест = "Есть ссылка", то получим "--->\nЕсть ссылка"
3. Было Пусто, стало "--->"
(**)
Если необходимо добавить "Есть ссылка":
"Есть ссылка" всегда дописываем в конец, если комменатрий есть (то есть там "--->") и создаём комменатрий, если его нет.
Пример:
1. Было "--->", стало "--->\nЕсть ссылка"
2. Было ничего, стало "Есть ссылка"
3. Было "Произвольный текст", стало "Произвольный текст\nЕсть ссылка". Если Произвольный текст = Есть ссылка, то получим "Есть ссылка\nЕсть ссылка". Зачем два раза, пусть будет - не будем усложнять алгоритм. Минус: не эстетично; Плюс: чёткий алгоритм.
вариантов 3
Вариантов дописывания два. Третий вариант получился из (**) п. 1 - для него я просто настроил другой цвет.
Я хочу понимать, что есть "путь" и что есть "пути к файлам"
"Есть ссылка" путь тождественно равно "Есть ссылка - пути к файлам" тождественно равно "Есть ссылка - путь" между этими наборами символов нет никаких различий это как Иван, Ваня, Ванюша - суть одно и тоже.