Что нового

Поиск и замена в файле

.me

Новичок
Сообщения
89
Репутация
0
Приветствую.
Подскажите, где я опять накосячил, необходимо вначале в файле найти необходимое совпадение из заданных, например:
1 функция вначале выбирает сервер (спасибо Garrett'у) далее записывает его в файл
Код:
$serv = $aDestIP[0][0]
$file = FileOpen("config.ini", 10)
FileWrite($file, $serv & @CRLF)
FileClose($file)

данные о более подходящем сервере получаю через функцию http://autoit-script.ru/index.php?topic=23826.msg136862#msg136862

в итоге я получаю более подходящий сервер, но проблема в том, что прямой пинг к серверу запрещен, разрешен лишь по выделенным поддоменам
Код:
testspeed-ru.mysite.ru, testspeed-ukr1.mysite.ru, testspeed-kz.mysite.ru, testspeed-rureserv.mysite.ru
исходя из этих данных нужно использовать необходимый сервер а т.к $aDestIP[0][0] выдаст лишь тот, который по пингу подходит более, будет использован не верный урл, грубо говоря в файле нужно найти текст одного из серверов
Код:
testspeed-ru.mysite.ru, testspeed-ukr1.mysite.ru, testspeed-kz.mysite.ru, testspeed-rureserv.mysite.ru
и заменить его соотв. примерно так:
если более подходящий testspeed-ru.mysite.ru - заменить в файле на update-ru.mysite.ru и т.д
пробовал так:

Код:
$File = "config.ini"
$Read = FileRead($File)
$Replace = StringRegExpReplace($Read , 'testspeed-ru.mysite.ru', 'update-ru.mysite.ru')
FileWrite($File, $Replace)

но как это сделать что бы он искал не 1 совпадение а из списка и соотв. заменял верно
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
966
.me
Понимаю, что ни черта не понимаю. :blink:
 
Автор
M

.me

Новичок
Сообщения
89
Репутация
0
сам додумался(на сколько правильно не знаю, но главное работает)
Код:
$filename = "config.ini"
$find_ru = "testspeed-ru.mysite.ru"
$replace_ru = "update-ru.mysite.ru"
$find_ukr1 = "testspeed-ukr1.mysite.ru"
$replace_ukr1 = "update-ukr1.mysite.ru"


$retval_ru = _ReplaceStringInFile($filename, $find_ru, $replace_ru)
$retval_ukr1 = _ReplaceStringInFile($filename, $find_ukr1 , $replace_ukr1 )
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
966
.me
Код:
If Not ('Зачем вам ini файл?') Then
   ConsoleWrite(StringFormat("> http://%s:8080/update.dat",  StringReplace($aDestIP[0][0], "testspeed", "update")))
Else
   ConsoleWrite(StringFormat("> Приведите пример содержимого ini файла.\n"))
EndIf
 
Верх