Что нового

Замена числа в строке на другое число

Aleksander-2000

Новичок
Сообщения
33
Репутация
0
Версия AutoIt: 3.3.14.0

Описание: Здравствуйте! Подскажите как число в строке заменить на другое заданное число. Т.е. сначала надо найти, если число в строке, и если оно есть, то заменить на другое.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Код:
StringReplace ( "string", "searchstring/start", "replacestring" [, occurrence = 0 [, casesense = 0 ]] )
StringRegExpReplace ( "test", "pattern", "replace" [, count = 0 ] )
 
Автор
Aleksander-2000

Aleksander-2000

Новичок
Сообщения
33
Репутация
0
Заменить нужно именно число, позиция его неизвестна.
 

СН3СН2ОН

Знающий
Сообщения
78
Репутация
12
Код:
$stroka = "fffffff50ggggggggggg"
StringReplace ( $stroka, "50", "55" )

Так задания не дают - это ящик Пандоры. Числа разные бывают.
OffTopic:

Не умеешь - плати. Забавно смотреть как человек из темы в тему задает вопросы. Вот уже 150 сообщений. Вроде каркас есть, а собрать даже это не может. Это не про вас Aleksander-2000. Но это вас ожидает. У меня есть опыт обучения человека с 0, не программиста далеко, на PowerShell. За 2 недели он самостоятельно писал очень сложные программы, для себя.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Заменить нужно именно число, позиция его неизвестна.
Вы смотрели описание тех функций , что я давал выше ? В чём загвоздка ?
Я и не обратил внимания, что это стол заказов :smile: В таком случае давайте больше информации - пример строк или файл их содержащий и что Вы хотите получить на выходе .
 
Автор
Aleksander-2000

Aleksander-2000

Новичок
Сообщения
33
Репутация
0
В том то и дело, что числа разные бывают. Если бы бы было известно какое число, или его позиция в строке, вопросов бы не было. Смотрел и функции StringReplace и StringRegExpReplace перед тем, как обратиться за помощью. В том то и дело, что неизвестно не позиция числа, не сколько символов он содержит, более того, замена на число происходит из переменной, таким образом число может быть и двухзначным, и трехзначным и т.д. Есть только то, что в строке есть одно число, и его надо заменить на другое.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Код:
StringRegExpReplace ( "test", "pattern", "replace" [, count = 0 ] )
Эта функция как раз под Вашу задачу.
Код:
$Text = 'Это какая-то строка и в ней есть число, например 225 и его нужно заменить !'
$Replace = 333555;Число для замены
$Zamena = StringRegExpReplace($text, '(\d+)', $Replace)
MsgBox(0, 'После замены', $Zamena)
 
Автор
Aleksander-2000

Aleksander-2000

Новичок
Сообщения
33
Репутация
0
А можно примером под мою задачу? Например, заменить 173 на 23, при том, что я не знаю, что. 173 это 173. Никак не могу сообразить.


Добавлено:
Сообщение автоматически объединено:

Число для замены я тоже не знаю, оно берется из переменной $chislo.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Код:
$Text = 'Это какая-то строка и в ней есть число 173 и его нужно заменить !'
$chislo = 23;Это наша переменная для замены, где и когда она получила своё значение не важно
$Zamena = StringRegExpReplace($Text, '(\d+)', $chislo)
MsgBox(0, 'После замены', $Zamena)

Нам всё-равно где и какое число - шаблон (\d+) это любая цифра, которая повторяется один и более раз. Меняем эту цифру на ту, что будет в переменной '$chislo'.
Есть неплохая обучалка для регулярных выражений, посмотрите на досуге https://autoit-script.ru/autoit3_docs/tutorials/regexp/regexp.htm
 
Автор
Aleksander-2000

Aleksander-2000

Новичок
Сообщения
33
Репутация
0
Спасибо.


Добавлено:
Сообщение автоматически объединено:

В сообщении от скрипта замена отражена, а как теперь сделать, чтобы в тексте самого файла произошла замена? Как перезаписать сам файл?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
OffTopic:
Aleksander-2000
IMHO вам нужно срочно почитать справку, там всё подробно расписано.
Ну или хотя бы воспользоваться поиском.
:search:
 
Верх