Как сделать макрос повторяющий цикл до последней строки?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
khpn19
Posts: 5
Joined: Thu 14 Feb, 2013 02:59

Как сделать макрос повторяющий цикл до последней строки?

Post by khpn19 »

Привет!!!
Нужна быстренько удалить определённые строки текста в редакторе. Составил следующий макрос:

REGEDIT4

[HKEY_CURRENT_USER\Software\Far\KeyMacros\Editor\CtrlAltQ]
"Sequence"="$Rep (100) CtrlHome F7 Space I T O G O Enter ShiftEnd BS BS $End"
"DisableOutput"=dword:00000001

Макрос намного снизил объём работы. Одновременно появились некоторые сложности. Например, если число определённых строк меньше чем сто, то макрос даёт ошибку. Каждый раз уточнять число строк и изменять $Rep (Expr) весьма затруднительно.
Как как сделать так, чтобы этот макрос повторял данный цикл до последней строки?! У меня FAR 1.75. Заранее благодарен!
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by Shmuel »

khpn19 wrote:Нужна быстренько удалить определённые строки текста в редакторе. Составил следующий макрос:
Поставьте плагин Search and Replace и делайте замену с регулярными выражениями.

Code: Select all

Искать      : " ITOGO.*"
Заменить на : ""
(В диалоге плагина кавычки убрать, естественно).
2useven10
Posts: 5231
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 315 times

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by 2useven10 »

зачем плагин ? замена с регулярными выражениями есть во встроенном редакторе.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by John Doe »

И как заменой удалить строку?
2useven10
Posts: 5231
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 315 times

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by 2useven10 »

никак. невнимательно прочел начальное сообщение.
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by Shmuel »

2useven10 wrote:зачем плагин ? замена с регулярными выражениями есть во встроенном редакторе.
В Фар 1.75 ?
John Doe wrote:И как заменой удалить строку?
В S&R есть такая галочка, чтобы удалять строки, ставшие в результате замены пустыми.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by John Doe »

Да, плюс насколько я помню S&R при запуске из панелей умеет удалять \r\n
User avatar
SUSim
Posts: 1637
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by SUSim »

... Из макроса можно удалить и непустую строку....одних макросов хватает, чтобы почистить строку и удалить её если она пуста!

Разница только в регэкспах ( у s&r они богаче, но и фаровские вполне ХОРОШОИ!)


для FAR3 можно сделать всё только макосом - пробуйте, не сможете пишите...
SimSU ··· ·· -- ··· ··-
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by Shmuel »

SUSim wrote:Разница только в регэкспах ( у s&r они богаче, но и фаровские вполне ХОРОШОИ!)
S&R и Фар используют одни и те же регекспы (автор - К.Ступник).
khpn19
Posts: 5
Joined: Thu 14 Feb, 2013 02:59

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by khpn19 »

Поставьте плагин Search and Replace и делайте замену с регулярными выражениями.
Код: Выделить всё
Искать : " ITOGO.*"
Заменить на : ""
(В диалоге плагина кавычки убрать, естественно).
Всё сработала отличьно :bojan: спасибо всем!!!
khpn19
Posts: 5
Joined: Thu 14 Feb, 2013 02:59

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by khpn19 »

Какие символы нужно поставить в S&R чтобы сперва удалить “ITOGO”, а потом можно было сцепить к предыдущей строке идущий за “ITOGO” текст. (вроде .*)
Shmuel
Posts: 6836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by Shmuel »

khpn19 wrote:Какие символы нужно поставить в S&R чтобы сперва удалить “ITOGO”, а потом можно было сцепить к предыдущей строке идущий за “ITOGO” текст. (вроде .*)
Звучит несколько неоднозначно. Приведите пример исходного текста и текста, который должен получиться после его преобразования.
khpn19
Posts: 5
Joined: Thu 14 Feb, 2013 02:59

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by khpn19 »

Вот пример исходного текста:

Code: Select all

|01.04.2013|Металлобаза            | 31000.00|Водопроводная труба: 15мм-100м, 20мм-50м, 25мм-|
|          |                       |         |50м, 32мм-100м, арматура(12мм)-100м            |
|02.04.2013|Магазин электроприборов| 15000.00|Перфоратор-5100.00, электропила-4800.00, болгар|
|          |                       |         |ка-2900.00, прочие-2200.00                     |
А должен получиться вот так:

Code: Select all

|01.04.2013|Металлобаза            | 31000.00|Водопроводная труба: 15мм-100м, 20мм-50м, 25мм-50м, 32мм-100м, арматура(12мм)-100м            |
|02.04.2013|Магазин электроприборов| 15000.00|Перфоратор-5100.00, электропила-4800.00, болгарка-2900.00, прочие-2200.00                     |
EGez
Posts: 145
Joined: Thu 04 Oct, 2012 13:53
Location: Hamburg, DE
Has thanked: 2 times
Been thanked: 2 times

Re: Как сделать макрос повторяющий цикл до последней строки?

Post by EGez »

Мои пять копеек...

Я например использую вот такой для удаления пустых строк:
  1. --[[ Leere Zeilen löschen ]] Keys('CtrlHome') repeat if Editor.Value == '' then Keys('CtrlY') else Keys('Down') end until Object.Eof
Если заменить условие на свое и соответственно подправить THEN-блок ...

ЗЫ: Это у меня для разных меняющихся макросов так в строке ввода задается...
Post Reply

Return to “Нужна помощь”