Тема: AHK V2: Извлечение номера заказа из строки в буфере обмена
Добрый день, имеется строка
Приобретение товаров и услуг ОА00-004952 от 29.07.2024 13:14:24
Из нее нужен только номер заказа ОА00-004952. Пытаюсь сделать следующее, чтобы при копировании строки, из нее извлекался номер заказа и помещался в буфер обмена вместо неё. Вроде бы в верном направлении двигаюсь, но вот если скопировать что-то другое, то фатальная ошибка скрипт закрывается, хотелось бы просто отделаться Tooltip или MsgBox с ошибкой. Плюс слабая часть плана в том, что в данном примере я ищу 5-е слово, а оно может быть не всегда 5-м. В нумерации заказов постоянная часть "ОА00" и переменная после дефиза "004952". Пытался находить по постоянной части, но тоже не вышло.
For index, strPart In strParts {
If (strPart == "ОА00") {
resultStr := strParts[index+1]
Хотелось бы сделать: находим ОА00, берем его и все что после него до спец. символа ("пробел", "\", "," и т.д), должно получится ОА00-004952 и кладем в буфер обмена. Можно уведомлять в ToolTip, если получилось просто номер заказа, если в строке его нет "Нет номера заказа".
Весь код
#Requires AutoHotkey v2.0
#SingleInstance
F5:: ExitApp
C::
{
;TestString := "Приобретение товаров и услуг ОА00-004952 от 29.07.2024 13:14:24"
;A_Clipboard := ""
TestString := A_Clipboard
word_array := StrSplit(TestString, A_Space, ".") ; Omits periods.
MsgBox "Номер заказа " word_array[5]
word_array[5] := A_Clipboard
MsgBox "Номер заказа " A_Clipboard
}