Страница 2 из 11
Добавлено: Пт фев 12, 2010 17:01
Flasher
sa
Раз говорим А, надо говорить и B. Почему не нужны?
Тогда выделение и поиск будет производиться не только по типам файлов, но и по типам папок, и тогда придётся самому мышкой указывать тот файл, с которого начнётся поиск. А это не есть правильно и добавляет доп. манипуляции.
P.S.: а вообще господин создатель не должен побрезговать новой подобной командой в Тотале. Было бы неплохо написать ему в хотелку.
Добавлено: Пт фев 12, 2010 17:39
sa
Flasher писал(а):придётся самому мышкой указывать тот файл, с которого начнётся поиск
Меня устраивает именно такой способ.
CaptainFlint писал(а):Как вариант, можно это всё загнать в макрос.
Ничего, что загнал? Для работы нужен
TCWSHelp:
Код: Выделить всё
' Description: Перейти к следующему расширению
' Requirements: WSH Helper for TC by Volniy
' Installation: Создайте для скрипта, например, кнопку на панели инструментов TC
Option Explicit
Dim TCS
Set TCS = CreateObject("TCScript.Helper")
TCS.LockTC True
TCS.SendCommand 527 'cm_SelectCurrentExtension
TCS.SendCommand 525 'cm_ExchangeSelection
TCS.SendCommand 2053 'cm_GotoNextSelected
TCS.SendCommand 524 'cm_ClearAll
TCS.LockTC False
Set TCS = Nothing
Wscript.Quit
Добавлено: Пт фев 12, 2010 17:45
Flasher
Вот хорошо, что ты скрипт создал, сразу и вылезли на поверхность те нюансы, о которых я писал, и насчёт папок и насчёт перехода на первый файл по окончанию списка.
Доверши пожалуйста, если не трудно.)
Добавлено: Пт фев 12, 2010 17:56
sa
Я ничего не создавал, а только записал языком скрипта предложения, которые высказали CaptainFlint и Avada.
Добавлено: Пт фев 12, 2010 18:04
Flasher
Да я понимаю. Просто я знаю, что если я также скопом напишу в той же последовательности свои команды у меня ничего не выйдет, так как там должны выполняться определённые условия. Если ты в этом(скриптинге) понимаешь, то я тебя прошу по-отечески. Мне вовсе не обязательно выполнять список тех команд, что я указал. Мне достаточно, чтобы выполнялись след. условия:
1. Переход происходил только по файлам (не по папкам)
2. по нахождению курсора на последнем файле и нажатию кнопки происходил перескок на первый.
Добавлено: Пт фев 12, 2010 18:04
Avada
Flasher
В чём смысл завершающего перехода на первый файл?
Что касается папок, то проблема легко решается добавлением после команды инверсии (cm_ExchangeSelection) следующей командой cm_ClearAllFolders, т.е. снятия выделения только с папок.
Добавлено: Пт фев 12, 2010 18:16
Flasher
Avada писал(а):Flasher
В чём смысл завершающего перехода на первый файл?
Ну я мог бы также и спросить: в чём смысл перехода на первый файл с другим расширением? Ну раз спросили: Буква с диал. поиска < Помним? Вот если осуществлять переход по набору текста, то по окончанию списка происходит переход на первый файл, удовлетворяющий условию(это не я придумал). Когда файлов много в папке, бывает проще нажимать только одну кнопку, а не искать другую, типа Home или cm_GoToFirstFile.
Avada писал(а):Что касается папок, то проблема легко решается добавлением после команды инверсии (cm_ExchangeSelection) следующей командой cm_ClearAllFolders, т.е. снятия выделения только с папок.
Вот спасибо, сейчас буду пробовать.
Добавлено: Пт фев 12, 2010 18:40
Flasher
Avada писал(а):добавлением после команды инверсии (cm_ExchangeSelection) следующей командой cm_ClearAllFolders, т.е. снятия выделения только с папок.
Работает, но только там где нет папок, если курсор на первой строке(переход в род. катал.), пишет "Такие файлы не найдены".

И переход на первый в силе.

Добавлено: Пт фев 12, 2010 18:41
Avada
Flasher
Скрипт, вообще-то, делался под изначальный запрос — переход на начало следующей по расширению группы файлов, далее к следующей и пр. Зачем это надо, объяснялось в первом посте. Про возврат к началу списка из его конца там разговора не было.
Если циклический переход по списку вообще кому-то в данном случае требуется (аналогия с быстрым поиском притянута здесь несколько за уши), он должен выполняться, разумеется, не добавлением перехода к первому файлу списка как завершающей команды, которая попросту прикончит результат действия предыдущей цепочки команд для каждого отдельного перехода между группами. Прикончит до того, как юзер успеет результатами навигации воспользоваться.
Добавлено: Пт фев 12, 2010 18:54
Flasher
Avada
То что не было разговора в первом посте не мешает поднимать из раза в раз неучтённые моменты с усовершенствованием задачи, если прослеживать цепочку тем форума. Или я ошибаюсь?
И зачем мне сейчас это было объяснять? Я об этом писал, что нет смысла пихать в один список. Вот мне то, как раз нужен ответ на вопрос, как добиться таки поставленной цели. Не буду же я заносить это в отдельную ветку, не правда ли?

Добавлено: Пт фев 12, 2010 22:44
Avada
Flasher
В отдельную ветку не надо. Неучтённые моменты — дело хорошее, но я внимательно следил за развитием дискуссии и прекрасно вижу, что команда cm_GoToFirstFile в теме появилась, строго говоря, ни с грушки, ни с петрушки и совершенно не вытекала из предыдущего обсуждения. Впрочем, ладно, уже разобрались. А как добиться, пусть ответят специалисты по скриптам, это вне моей компетенции.
Flasher писал(а):Работает, но только там где нет папок, если курсор на первой строке(переход в род. катал.), пишет "Такие файлы не найдены".
Не понял. Как курсор вообще оказался в рамках нашей задачи на строке перехода в родительский каталог?
Добавлено: Сб фев 13, 2010 02:04
Flasher
Avada писал(а):Не понял. Как курсор вообще оказался в рамках нашей задачи на строке перехода в родительский каталог?
А там, где ставилась задача, момент с положением курсора и не обговаривался. Поэтому продолжаем "диспут" на предмет усовершенствования.) Там где папки присутствуют, при нахождении курсора на строке перехода в р.к., выполняется команда очищения от них, поэтому с этой строки всё работает, когда же папок нет, всплывает та самая петрушка с ненахождением того, что можно очистить. Решаемо, нет?

В общем ждём'с плагинописцев.
Добавлено: Сб фев 13, 2010 08:42
Avada
Flasher
Не плагинописцев, а скриптописцев. Мне задача циклического перехода не по плечу, а то, что она в общем виде не решается простой последовательностью одних и тех же команд (и потому не может быть воспроизведена просто вызовом этих команд без скрипта) — факт.
И по исходным условиям задачи совершенно очевидно, что на момент запуска скрипта курсор должен находиться на произвольном файле произвольной группы, поскольку мы ищем следующее расширение. Но никак не на строке перехода в родительский каталог.
И вообще, по первоначальному запросу результат достигнут. Если нужен другий результат – надо формулировать модифицированный вариант задачи заново. От и до.
Добавлено: Сб фев 13, 2010 16:34
Flasher
Avada писал(а):Flasher
Не плагинописцев, а скриптописцев.
Эко я так промахнулся.

На язык не то слово встало в полусне.)
Мне задача циклического перехода не по плечу...— факт.
Это я уже и так понял.
И по исходным условиям задачи совершенно очевидно, что на момент запуска скрипта курсор должен находиться на произвольном файле произвольной группы, поскольку мы ищем следующее расширение. Но никак не на строке перехода в родительский каталог.
То что мы ищем след. расширение, вовсе не означает, что оно должно находиться на каком-то определённом файле. Скрипт может подходить как один из универсальных способов навигации. Возьмём, предположим, команду
cm_GotoNextSelected, по сути она должна предполагать что курсор находится уже на каком-то выделенном файле, но, как можно убедиться, это не так, и работает она стабильно и при нахождении курсора на строке перехода, и на любом предшествующем непомеченном файле.
Если нужен другой результат – надо формулировать модифицированный вариант задачи заново. От и до.
Я вот уже не первый год читаю форум, и что-то впервые такое "надо" вижу. Если человеку нужно было бы добавить какую-то определённую функцию для скрипта, то тот, кто компетентен([как пример -
Batya), по желанию справлялся с новой задачей, а не просил написать заново все старые условия + новое. Ладно, педантичность - дело тонкое. Пишу:
При нахождении курсора в любой части панели (строка перехода в родительский каталог, любая папка, любой файл) должен выполняться циклический переход курсора на первый файл(не папку) с другим расширением, соответственно по окончанию списка курсор должен перескакивать на первый файл(не папку) в панели. При этом кнопка(соч. клавиш) должна работать как при наличии папок в директории, так и без них.
Добавлено: Сб фев 13, 2010 17:36
Avada
Flasher писал(а):То что мы ищем след. расширение, вовсе не означает, что оно должно находиться на каком-то определённом файле.
А где ещё может находиться следующее расширение, кроме как на каком-то определённом файле? Навигация выполняется на конкретный файл (по любому варианту условий – первый в следующей группе), а не на деревню дедушке.
Flasher писал(а):то тот, кто компетентен(как пример - Batya), по желанию справлялся с новой задачей, а не просил написать заново все старые условия + новое
Угу. Особенно если сам же начинал решать исходную задачу, следил за продолжением темы и не имел вопросов по точности формулировки условий. Но он пока здесь не проявился. Я просто пытаюсь людям облегчить работу — только и всего.
И по формулировке задачи:
Flasher писал(а):[При нахождении курсора в любой части панели (строка перехода в родительский каталог <...> должен выполняться циклический переход курсора на первый файл(не папку) с другим расширением
Это к вопросу о педантичности. Какое может быть
другое расширение относительно элемента списка, никакого расширения не имеющего по определению? Кроме того,
другой файл может быть как предыдущим, так и последующим относительно текущего.
Если взять за основу и подправить предыдущую формулировку, то задача в корректном виде. ИМХО, звучит примерно так:
При нахождении курсора на любой строке файлового списка (строка перехода в родительский каталог, любая папка, любой файл) должен выполняться — согласно алфавитному порядку расширений — переход курсора на первый файл (не папку) следующей группы, а по окончании списка — циклический переход на первый файл (не папку) в панели. При этом навигация должна работать как при наличии папок в списке, так и без них.