Author Topic: Фильтр строки (слово)  (Read 1990 times)

0 Members and 1 Guest are viewing this topic.

SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Фильтр строки (слово)
« on: December 03, 2020, 05:13:06 PM »
Добрый день, друзья!

1) Как сделать так, чтобы кликер выделил текст и оставил в нем слово "труба" или "лист" если таковое есть в тексте? Символы знаю как, а вот слова нет!

2) В выделенном тексте например Лист г/к 2000х4500x50 или Лист г/к 4000х8х500 или Лист г/к 20х1000х800 разделить два числа и расписать их по двум переменным? При условии, что все двузначные и однозначные числа убрать.
Результат: $a = 2000 $b = 4500. Во втором примере $a = 4000, $b = 500, в третьем примере $a = 1000, $b = 800

Затем проделать такую формулу: $c делить ($a умножить на $b) = Х
($d умножить $e) и умножить на Х = $f
Если $f имеет число 2,75889987, то округлить до 2,76. В копейки в общем. При этом 2,78 и последняя цифра больше 5, то в большую сторону, если меньше, то в меньшую.
« Last Edit: December 03, 2020, 05:56:50 PM by SimplY »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Фильтр строки (слово)
« Reply #1 on: December 03, 2020, 05:54:50 PM »
1) Где этот текст? Как выделил? Чем? Зачем что-то оставлять непонятно где, если сразу можно задать эту "трубу".

2)
Code: (clickermann) [Select]
$text = "2000х4500"

STRSEPARATE($text, "х", $words)
PRINT($words[0])
PRINT($words[1])
HALT


SimplY

  • Активный участник
  • ***
  • Posts: 125
    • View Profile
Re: Фильтр строки (слово)
« Reply #2 on: December 03, 2020, 05:58:56 PM »
1) Где этот текст? Как выделил? Чем? Зачем что-то оставлять непонятно где, если сразу можно задать эту "трубу".

2)
Code: (clickermann) [Select]
$text = "2000х4500"

STRSEPARATE($text, "х", $words)
PRINT($words[0])
PRINT($words[1])
HALT

Тему сообщения дополнил. Выделил ручками и кинул в буфер обмена

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Фильтр строки (слово)
« Reply #3 on: December 03, 2020, 06:48:12 PM »
Тему сообщения дополнил.

Ты не дополнил. Ты полностью изменил второй вопрос.

Если $f имеет число 2,75889987, то округлить до 2,76. В копейки в общем. При этом 2,78 и последняя цифра больше 5, то в большую сторону, если меньше, то в меньшую.
А если равно пяти? Блин, ну кто так ставит условия  ;D  И при чём здесь именно последняя цифра, может имелась ввиду 3 после запятой?

Code: (clickermann) [Select]
//$text = "Лист г/к 2000х4500x50"
//$text = "Лист г/к 4000х8х500"
$text = "Лист г/к 20х1000х800"

$text1 = STRCUT($text, 10, 50)
STRSEPARATE($text1, "х", $numsall)
UNDEFINE($nums)
FOR($i=0, $i < ARRSIZE($numsall))
    IF($numsall[$i] > 99)
        ARRPUSH($nums, $numsall[$i])       
    END_IF   
END_CYC

PRINT($nums[0])
PRINT($nums[1])

$f = $d * $e * ($c / ($nums[0] * $nums[1]))
$f = INT(($f * 100) + 0.5) / 100
PRINT($f)
HALT


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Фильтр строки (слово)
« Reply #4 on: December 03, 2020, 06:55:08 PM »
1)
Code: (clickermann) [Select]
TOCLIP("металлическая труба диаметром 400 мм") // только для теста
$text = FROMCLIP()
PRINT($text)
IF(STRPOS($text, "труба") > 0)
    TOCLIP("труба")
ELSE
    IF(STRPOS($text, "лист") > 0)
        TOCLIP("лист")
    END_IF
END_IF