Я хочу использовать регулярные выражения для _GUICtrlRichEdit_Create. Все работает нормально за пределами вордовских таблиц - эти таблицы превращаются в обычный текст. Посмотрите код:
1. Запустите скрипт
2. Скопируйте в GUI какую-нибудь вордовскую таблицу
3. Нажмите CTRL+x
4. Вы видите? Таблица превратилась в простой текст (потерялось свойство таблицы)
5. Нажмите ESC для выхода.
Наверное, в таблицах нельзя применять регулярные выражения. Однако в MS Word есть поддержка оных и все прекрасно меняется внутри таблиц. Наверное, я что-то не так делаю.
Код:
#include <UDF\GuiRichEdit.au3>
#include <GUIConstants.au3>
$Form1 = GUICreate("Form1", 800, 600, 300, 200)
$hRichEdit = _GUICtrlRichEdit_Create($Form1, "", 0, 0, 800, 600)
GUISetState(@SW_SHOW)
HotKeySet("^x", "_Replace")
HotKeySet("{ESC}", "_Exit")
Global $Records
Global $Search[1000][2]
Global $Matches
Global $i, $IN
TrayTip ("AutoIt", "Started", 1)
sleep(2000)
TrayTip("clears any tray tip","",0)
While 1
Sleep(100)
WEnd
Func _Replace()
Local $i
$Text = _GUICtrlRichEdit_GetCtrlText($hRichEdit)
;~ HERE IS THE PROBLEM!
$Text = StringRegExpReplace($Text, "a", "b")
_GuiCtrlRichEdit_AppendText($hRichEdit, $Text)
;~ THE TABLE IS NOT MS-WORD-TYPE ANYMORE
TrayTip ("AutoIt", "Done", 1)
sleep(1000)
TrayTip("clears any tray tip","",0)
EndFunc
Func _Exit()
TrayTip ("AutoIt", "Exit", 1)
Sleep(1000)
Exit
EndFunc
1. Запустите скрипт
2. Скопируйте в GUI какую-нибудь вордовскую таблицу
3. Нажмите CTRL+x
4. Вы видите? Таблица превратилась в простой текст (потерялось свойство таблицы)
5. Нажмите ESC для выхода.
Наверное, в таблицах нельзя применять регулярные выражения. Однако в MS Word есть поддержка оных и все прекрасно меняется внутри таблиц. Наверное, я что-то не так делаю.