Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: SimplY on November 21, 2019, 05:32:02 AM

Title: Удалять первое слово из строки
Post by: SimplY on November 21, 2019, 05:32:02 AM
Всем привет!

Есть три слова. Фамилия, имя и отчество. Выделяет и копирует он полное ФИО, так как они написаны вместе через пробел. Фамилия всегда первая, имя второе и отчество соответственно последнее. В другое место он должен вставлять только имя и отчество. ФИО всегда разное, соответственно кол-во букв тоже. Ориентир пробел. Вставить желательно без форматирования.

Пример:
Копировать: Петров Юрий Антонович
Вставить: Юрий Антонович

Code: (clickermann) [Select]
//предыдущий скрипт
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#C)
KEYUP (#CTRL)
WAITMS (500)
$io = FROMCLIP()
//Дальнейший скрпит
LCLICK(302,282)  // Кликает на место вставки текста
WAITMS (500)
TOCLIP($io)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYPRESS (#V)
KEYUP (#CTRL)

Пытался разобраться, но не нашел функцию, удаляющую первое слово из строки.
Title: Re: Удалять первое слово из строки
Post by: Космич on November 21, 2019, 06:05:36 AM
Code: (clickermann) [Select]
STRCUT2($io, STRPOS($io, " ", 2) + 1, STRLEN($io))
Title: Re: Удалять первое слово из строки
Post by: Vint on November 21, 2019, 08:43:29 AM
Можно ещё через массив.

Да, так длинней и медлинней.
Но так удобней, если слова нужны не подряд, или в другом порядке, или из середины. Особенно, если нужно несколько вариантов.
Code: (clickermann) [Select]
$f = "Пушкин Александр Сергеевич"

UNDEFINE($fio)
STRSEPARATE($f, " ", $fio)

// имя отчество
$io = STRCONCAT($fio[1], " ", $fio[2])
print($io)

// имя фамилия
$if = STRCONCAT($fio[1], " ", $fio[0])
print($if)

// имя
$i = STRCONCAT($fio[1])
print($i)
HALT

Quote
8:46:22 Александр Сергеевич
8:46:22 Александр Пушкин
8:46:22 Александр
Title: Re: Удалять первое слово из строки
Post by: SimplY on November 21, 2019, 01:31:06 PM
Можно ещё через массив.

Да, так длинней и медлинней.
Но так удобней, если слова нужны не подряд, или в другом порядке, или из середины. Особенно, если нужно несколько вариантов.
Code: (clickermann) [Select]
$f = "Пушкин Александр Сергеевич"

UNDEFINE($fio)
STRSEPARATE($f, " ", $fio)

// имя отчество
$io = STRCONCAT($fio[1], " ", $fio[2])
print($io)

// имя фамилия
$if = STRCONCAT($fio[1], " ", $fio[0])
print($if)

// имя
$i = STRCONCAT($fio[1])
print($i)
HALT

Quote
8:46:22 Александр Сергеевич
8:46:22 Александр Пушкин
8:46:22 Александр

Спасибо! Кстати, иногда копирует только имя и отчество. Тогда соответственно нужно скопировать и вставить оба слова.
Title: Re: Удалять первое слово из строки
Post by: SimplY on November 21, 2019, 01:41:34 PM
Друзья! У меня не получается ни первый код, ни второй. В первом случае он как копирует ФИО, так ФИО и вставяет.
Во втором случае с массивами вставляет  0 0

Если Три слова, то вставлять последние 2.
Если два слова копируется, то вставлять весь текст.
Title: Re: Удалять первое слово из строки
Post by: Oraven on November 21, 2019, 05:29:27 PM
Code: (clickermann) [Select]
$f = "Петров Юрий Антонович"

UNDEFINE($fio)
STRSEPARATE($f, " ", $fio)
IF(ARRSIZE($fio) > 2)
   $f = STRCONCAT($fio[1], " ", $fio[2])
END_IF

print($f)
HALT
Title: Re: Удалять первое слово из строки
Post by: SimplY on November 21, 2019, 07:30:04 PM
Спасибо!!!
Всё получилось:)