Что нового

Странно работает StringRegExpReplace на тексте из ClipGet()

Suppir

Продвинутый
Сообщения
967
Репутация
62
Код:
HotKeySet("!ё", "_Replace")
HotKeySet("^ё", "_Exit")

TrayTip ("AutoIt", "Скрипт запущен", 1)
sleep(1000)
TrayTip("clears any tray tip","",0)

Global $Text, $Modified

While 1
    Sleep(10)
WEnd

Func _Replace()
	
	$Text = ClipGet()
	$Modified = StringRegExpReplace($Text, "ё", "е")
	$Modified = StringRegExpReplace($Text, " +", " ")
	ClipPut($Modified)
	TrayTip ("AutoIt", "Замена произведена", 1)
	sleep(1000)
	TrayTip("clears any tray tip","",0)
	
EndFunc


Func _Exit()
	TrayTip ("AutoIt", "Завершение работы скрипта", 1)
	Sleep(1000)
	Exit
EndFunc

Я хочу, чтобы при нажатии ALT-ё производилась замена текста в буфере обмена:
1) буквы ё менялись на е
2) многочисленные пробелы (несколько подряд) менялись на один пробел.
Затем измененный текст заново пишется в буфер.


В результате пробелы меняются, но буква "ё" - почему-то нет. :(

Причем дело не в русских буквах. Если менять английские буквы, то замены не происходит.
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Вы не правильно делаете. Смотрите различия.
Код:
Func _Replace()
   
   $Text = ClipGet()
   $Modified = StringRegExpReplace($Text, "ё", "е")
   $Modified = StringRegExpReplace($Modified, " +", " ")
   ClipPut($Modified)
   TrayTip ("AutoIt", "Замена произведена", 1)
   sleep(1000)
   TrayTip("clears any tray tip","",0)
   
EndFunc


Func _Exit()
   TrayTip ("AutoIt", "Завершение работы скрипта", 1)
   Sleep(1000)
   Exit
EndFunc
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
ААА, посыпаю голову пеплом :( Я менял СТАРУЮ строку, а нужно было новые менять. Спасибо :smile:


Добавлено:
Сообщение автоматически объединено:

Правильный код выглядит так (нам вообще не нужна $Modified):


Код:
Func _Replace()
	
	$Text = ClipGet()
	$Text = StringRegExpReplace($Text, "ё", "е")
	$Text = StringRegExpReplace($Text, " +", " ")
	ClipPut($Text)
	TrayTip ("AutoIt", "Замена произведена", 1)
	sleep(1000)
	TrayTip("clears any tray tip","",0)
	
EndFunc
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1,590
Репутация
341
Можно и так :smile:
 
Автор
S

Suppir

Продвинутый
Сообщения
967
Репутация
62
Просто если использовать $Modified, то в случае, если в тексте нет буквы ё, мы не получим $Modified и другая обработка также не будет произведена.
 
Верх