Author Topic: Удалять первое слово из строки  (Read 2636 times)

0 Members and 1 Guest are viewing this topic.

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Удалять первое слово из строки
« 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)

Пытался разобраться, но не нашел функцию, удаляющую первое слово из строки.
« Last Edit: November 21, 2019, 01:39:46 PM by SimplY »

Космич

  • Активный участник
  • ***
  • Posts: 265
    • View Profile
Re: Удалять первое слово из строки
« Reply #1 on: November 21, 2019, 06:05:36 AM »
Code: (clickermann) [Select]
STRCUT2($io, STRPOS($io, " ", 2) + 1, STRLEN($io))
«Иногда ты ваяешь до тех пор, пока до тебя не дойдёт, что именно ты делаешь.»

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Удалять первое слово из строки
« Reply #2 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 Александр
« Last Edit: November 21, 2019, 08:51:07 AM by Vint »


SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Re: Удалять первое слово из строки
« Reply #3 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 Александр

Спасибо! Кстати, иногда копирует только имя и отчество. Тогда соответственно нужно скопировать и вставить оба слова.

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Re: Удалять первое слово из строки
« Reply #4 on: November 21, 2019, 01:41:34 PM »
Друзья! У меня не получается ни первый код, ни второй. В первом случае он как копирует ФИО, так ФИО и вставяет.
Во втором случае с массивами вставляет  0 0

Если Три слова, то вставлять последние 2.
Если два слова копируется, то вставлять весь текст.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Удалять первое слово из строки
« Reply #5 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

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Re: Удалять первое слово из строки
« Reply #6 on: November 21, 2019, 07:30:04 PM »
Спасибо!!!
Всё получилось:)