вопросы и хотелки

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

вопросы и хотелки

Post by Skirda »

gerser wrote:Может, можно как-то по более нормальному спозиционировать курсор на существующую директорию?
Нечто вроде [A|P]Panel.SetPos(strFileName) подойдет?

User avatar
Zeroes
Мультикопипастер Броадкастер
Posts: 536
Joined: Wed 16 Mar, 2005 20:53
Location: Gomel \ Belarus
Contact:

Post by Zeroes »

Skirda

если логика позиционирования будет конечно не как у Qsearch по маске а по абсолюту. если есть имя такое - позиционируем.
--- Zeroes & Ones ---

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Post by Skirda »

ну, я как бы другого и не предполагал

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Post by Skirda »

"Гора родила мышь" (с) zg.

Вот так оно?

Code: Select all

%dt=date("%Y.%m0.%d"); $If (fexist(%dt)) panelItem(0,-1,%dt) $Else F7 $Text %dt Enter $End
Индекс равный -1, это только что придумал :-) - типа SetPos.
Или все же отдельную функцию для позиционирования?

User avatar
HaRT
Moderator
Posts: 9231
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 92 times
Been thanked: 195 times

Post by HaRT »

Лучше не наделять сущности несвойственными им обязанностями.
panelItem читает одно; чтобы писать что-то другое, нужна отдельная функция.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Post by Skirda »

setPanelItem(panelType,Index,Var)
panelType - как у panelItem
index=0 - set pos
index=1 - select (туда сюда, если установлено - снять, ...)
index=2 - set Diz

так?

User avatar
HaRT
Moderator
Posts: 9231
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 92 times
Been thanked: 195 times

Post by HaRT »

Не совсем.
Надо уж либо предоставлять этой функцией только возможность установить текущий элемент панели, либо учреждать нечто вроде

setPanelItem(panelType,itemIndex,propIndex,propValue),
где
propIndex - номер свойства (то же, что и TypeInfo в panelItem), а
propValue - значение, которое требуется установить (соответствует значению, возвращаемому из panelItem).

При этом желательно будет добавить в panelItem ещё одно значение TypeInfo, означающее "является ли элемент текущим" (для соответствующего значения propIndex параметр propValue должен игнорироваться), а реализовывать установку конкретных свойств можно будет по мере необходимости/ желания автора.

Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

как сделать?

Post by Kildor »

1. поместить в переменную выделенный текст в редакторе?
2. можно расширить substr для того, чтоб она могла возвращать подстроку начиная с конца строки?
«Если N1 отрицательный, возвращаемая подстрока начинается с N1 символа с конца строки V»?
3. macro:post msgbox("test", substr("1234567",2,-2),0) выведет подстроку "34567" — так и задумано? тогда может описать это поведение в энциклопедии?
4. как в макросе в переменной сделать замену одних символов на другие?
PS:
Функции - Макросы
S=substr(V,N1,N2) Возвращает подстроку из выражения V начиная с позиции N1 длинной N2.
типографика, однако ;)
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru

User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

Post by Centaur »

длиной
Орфография, однако.

Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

Centaur
да, конечно орфография ;)
вечно думаю одно, пишу совсем другое…
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru

User avatar
HaRT
Moderator
Posts: 9231
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 92 times
Been thanked: 195 times

Re: как сделать?

Post by HaRT »

Kildor wrote:1. поместить в переменную выделенный текст в редакторе?
Сначала в буфер по CtrlIns, потом в переменную через clip.

Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

Ещё в копилку:
Как сделать регистронезависимое сравнение строк?

HaRT
Ну да, пожалуй так и сделаю…

PS: по прочтению мантис (#121)

Code: Select all

macro:post $iClip CtrlPgDn Alt< "*.diz" Esc %file=APanel.Current;
$if (fsplit(%file,0x00000008)!=".diz"&& fsplit(%file,0x00000008)!=".DIZ")
	$if(APanel.Folder &&APanel.CurPos==2&&APanel.ItemCount==2)
		CtrlPgDn Alt< "*.diz" Esc
		$if (fsplit(APanel.Current,0x00000008)!=".diz"&&fsplit(APanel.Current,0x00000008)!=".diz")
			CtrlPgUp
			clip(1,"Автор был ленив и описания не предоставил")
		$else
			F4 CtrlA CtrlIns Esc CtrlPgUp
			$end
	$else
		clip(1,"Автор был ленив и описания не предоставил")
		$end
	CtrlPgUp
$else
	F4 CtrlA CtrlIns Esc CtrlPgUp
	$end
CtrlZ clip(1,substr(clip(0,"0"),0,60)) ShiftIns $text "..." CtrlEnter
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru

Gindos
Posts: 6
Joined: Thu 20 Jul, 2006 01:00

проверка наличия файла по маске

Post by Gindos »

Добрый день!

можно ли стандартными возможностями макроязыка проверять наличие файла (или группы файлов) в панели по маске - меня интересует что-то типа fexist("*.doc"), извраты типа

Code: Select all

  Add
  $Text "*.doc"
  Enter
  $If (APanel.SelCount > 0)
     Multiply
     делаем нибудь-чего
  $End
я могу и сам написать, но это не есть удобно, т.к. нужнО не забыть снять потомича выделение с файлов..., иначе могЁт и катострофа произойти

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Post by Skirda »

на мантис виш пиши

Gindos
Posts: 6
Joined: Thu 20 Jul, 2006 01:00

Простите, но я Вас совсем не понялю

Post by Gindos »

Skirda wrote:на мантис виш пиши
Простите, но я Вас совсем не понял. Что Вы имели ввиду?

Post Reply

Return to “Обсуждение макросов”