Что нового

Переименовка со счетчиком

saraconor

Новичок
Сообщения
404
Репутация
3
допустим есть такой код:
Код:
[$NA[@][0],8,216,233,33],	[$NA[@][0],240,56,233,33],	[$NA[@][0],240,88,233,33],	[$NA[@][0],240,120,233,33],	[$NA[@][0],240,152,233,33],	[$NA[@][0],240,184,233,33],	[$NA[@][0],240,216,233,33],

В SciTE есть возможность произвести замену символа @ на последовательно увеличивающееся число? (интересует именно этот момент, циклы с for... to не нужно предлагать, спасибо.)
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
На ум пришли вот такие костыли:
Код:
#include <Array.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <string.au3>
Dim $EP = 0
HotKeySet("{enter}","EL")

$mouse = MouseGetPos()
$Form1 = GUICreate("Счетчик", 190, 61, $mouse[0]-160, $mouse[1]-38)
$Label1 = GUICtrlCreateLabel("Начальный номер", 24, 10, 96, 17)
$Label2 = GUICtrlCreateLabel("Изменяемый символ", 8, 35, 113, 16)
$Input1 = GUICtrlCreateInput("0", 128, 8, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_RIGHT))
$Input2 = GUICtrlCreateInput("@", 128, 32, 49, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_RIGHT))

GUISetState(@SW_SHOW)
GUICtrlSetState($Input1, $GUI_FOCUS)

While $EP = 0
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd

Func EL()
$EP = 1
HotKeySet("{enter}")
EndFunc

$P = GUICtrlRead($Input1)
$ras = GUICtrlRead($Input2)

$sData = ClipGet()
$sea = StringRegExp($sData,$ras)
if $sea = 0 then
ToolTip('разделитель не найден')
sleep(400)
ToolTip('')
exit
Else
ToolTip('преобразование завершено')
sleep(400)
ToolTip('')
endif

$aDays = StringSplit($sData,$ras)
$raz = UBound($aDays)

for $K = 1 to $raz-2
$len = StringLen($aDays[$K])
$st = _StringInsert($aDays[$K],$P,$len)
_ArrayInsert($aDays,$K,$st)
_ArrayDelete($aDays,$K+1)
$P = $P + 1
next
_ArrayDelete($aDays,0)
$str = _ArrayToString($aDays,'')
ClipPut($str)

Может в SciTE всетаки встроено нечто подобное?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
saraconor
Код:
Local $Text = "", $Delim = "@", $Inc = 0
$Array = StringSplit(ClipGet(), $Delim, 1)
For $i = 1 To $Array[0]
  $Text &= $Array[$i] & $Inc
  $Inc += 1
Next
ClipPut(StringTrimRight($Text, StringLen($Inc - 1)))
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
InnI - элегантно...
Garrett - чего? :smile:

Товарищи, по теме есть что сказать?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
saraconor
а почему ты решил, что SciTE не использует цикл ?
Код:
For ... To...
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
joiner сказал(а):
saraconor
а почему ты решил, что SciTE не использует цикл ?
Код:
For ... To...
Послушайте, я про что спрашивал? про встроенный инструмент для нумерования совпадающих значений в редакторе а не про синтаксисы.
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
saraconor [?]
Послушайте, я про что спрашивал? про встроенный инструмент для нумерования совпадающих значений в редакторе а не про синтаксисы.

Встроенный инструмент есть, и называется он Lua.
Изучайте и пишите свои надстройки для SciTE.

P.S. Сначала вам For...To не предлагать, потом сами же предлагаете "костыль" с применением всё того же For...To. Вы уж, батенька, разберитесь, вам шашечки или ехать?
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
Garrett сказал(а):
P.S. Сначала вам For...To не предлагать, потом сами же предлагаете "костыль" с применением всё того же For...To. Вы уж, батенька, разберитесь, вам шашечки или ехать?
А у вас сразу и глазки разбежались?) Вопрос в начале был, на него никто так и не ответил. Батенька)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
saraconor [?]
А у вас сразу и глазки разбежались?)
Вы это к чему?

Вопрос в начале был, на него никто так и не ответил.

Вопрос:
[?]
В SciTE есть возможность произвести замену символа @ на последовательно увеличивающееся число?

Ответ:
Garrett [?]
Встроенный инструмент есть, и называется он Lua. Изучайте и пишите свои надстройки для SciTE.
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
Garrett сказал(а):
Встроенный инструмент есть, и называется он Lua. Изучайте и пишите свои надстройки для SciTE.
Иезуитский ответ. Это как еслиб человек спросил: "Есть ли в CorelDraw инструмент для рисования красивой тени?" а ему ответили: "Да есть и называется он Photoshop. Изучайте, используйте свойства слоев, рисуйте свои тени для CorelDraw"
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
saraconor, в Scite по умолчанию, нет такой возможности. не уверен есть ли вообще подобный плагин. но, как уже ответили, в Scite все плагины написаны при помощи языка Lua, и люди вполне себе пишут свои собственные инструменты используя этот язык. что такого "иезуитского" в этом ответе? какой смысл ты вкладываешь в слово "иезуитский"?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Kaster
пишут свои собственные инструменты используя этот язык
В полной версии SciTE для AutoIt некоторые инструменты написаны на самом AutoIt. Только их, в отличие от saraconor, не называют "костыль", а дают осмысленные имена :smile:
 
Автор
S

saraconor

Новичок
Сообщения
404
Репутация
3
Kaster сказал(а):
saraconor, в Scite по умолчанию, нет такой возможности. не уверен есть ли вообще подобный плагин. но, как уже ответили, в Scite все плагины написаны при помощи языка Lua, и люди вполне себе пишут свои собственные инструменты используя этот язык. что такого "иезуитского" в этом ответе? какой смысл ты вкладываешь в слово "иезуитский"?
Спасибо, теперь все ясно)
 
Верх