Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: ksa-nsk on November 01, 2014, 10:41:20 AM
-
прошу пояснить принцип работы команды STRREPLACE ("str", "substr1", "substr2"), т.к. в другом языке замена происходит замена ВСЕХ "substr1" на "substr2".
Здесь, если я правильно понимаю, замена идет только ПЕРВОГО вхождения.
Пример:
$var = STRREADLN("test.txt", 1) // там для теста я поставил " 28.10.20 14 "
print("$var=", $var)
$$var = STRREPLACE($var, " ", "z") // хотел удалить все пробелы, для наглядности поставил "z"
print("$var=", $var)
Результат:
13:38:45 $var= 28.10.20 14
13:38:45 $var=z28.10.20 14
Понятно, что можно бахнуть циклом по количеству пробелов, но на мой взгляд, это функция сама должна делать.
-
В четвертой строке - $$var исправить нужно.
Во входящей строке 4 пробела, соответственно STRREPLACE выполняем 4 раза. Видимо так задумано.
$var = " 28.10.20 14 "
print("$var=", $var)
$var = STRREPLACE($var, " ", "z") // хотел удалить все пробелы, для наглядности поставил "z"
print("$var=", $var)
$var = STRREPLACE($var, " ", "z") // хотел удалить все пробелы, для наглядности поставил "z"
print("$var=", $var)
$var = STRREPLACE($var, " ", "z") // хотел удалить все пробелы, для наглядности поставил "z"
print("$var=", $var)
$var = STRREPLACE($var, " ", "z") // хотел удалить все пробелы, для наглядности поставил "z"
print("$var=", $var)
HALT
Результат:
11:31:13 $var= 28.10.20 14
11:31:13 $var=z28.10.20 14
11:31:13 $var=z28.10.20z 14
11:31:13 $var=z28.10.20zz 14
11:31:13 $var=z28.10.20zzz14
[spoiler=STRFILTER работает иначе... (цитата из справки Clickermann v4.11 (build 000))]
Синтаксис
STRFILTER ("str", "set", mode) - строковая функция; возвращает отфильтрованную строку
Параметры
str - входная строка
set - набор символов маски
mode - режим фильтрации
Если режим будет задан как 0, то из входной строки будут вырезаны все символы, указанные в маске
Если режим будет задан как 1, то из входной строки будут вырезаны все символы, кроме указанных в маске
Пример
print( strfilter("hello2000", "20", 0 ) ) // результат "hello"
print( strfilter("hello2000", "20", 1 ) ) // результат "2000"
[/spoiler]
-
Для этого надо использовать STRFILTER
$var = TFREAD("test.txt", 1) // там для теста я поставил " 28.10.20 14 "
print("$var=", $var)
$var = STRFILTER($var, " ", 0) // удалить все пробелы
print("$var=", $var)
HALT
-
спасибо, по справке прочитал, сразу не сообразил, как-то по-привычке, раз замена подстрок, значит замена, но в справку добавить про замену только первого вхождения было бы неплохо))))