Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Не могу разобраться с FileOpen и StringRegExpReplace (http://forum.oszone.net/showthread.php?t=148934)

ALFERIUS 26-08-2009 12:05 1203597

Не могу разобраться с FileOpen и StringRegExpReplace
 
Здравствуйе,

Необходимо в файле заменить слово и возврат каретки на слово и пробел

Собственно проблема в том, что когда я пишу
$file = FileOpen("test.txt", 4)
MsgBox(0, "проверка", $file)

он мне возвращает -1, если файла нету, с этим все правильно.
А вот когда файл есть, в инструкции написано, что должен возвращаться указатель на файл, а он мне возвращает 1.
Соответственно, когда я использую:
StringRegExpReplace ( $file, "искомый", "заменяемый", 0)
он мне ищет не по файлу, а по возвращаемой единице.

Помогите пожалуйста, в чем проблема?

Medic84 26-08-2009 12:14 1203604

Ага. Я думаю нужно сделать так
Код:

$file = FileOpen("test.txt", 4)
$Read = FileRead($file)
StringRegExpReplace ( $Read, "искомый", "заменяемый", 0)

Ну а если не так, то мы не телепаты тут сидим ))

ALFERIUS 26-08-2009 12:16 1203609

Спасибо, как раз начал читать про эту функцию.
Все получилось.

FlatX007 26-08-2009 12:19 1203611

Код:

$sFile = FileRead(@WindowsDir & '\win.ini')

MsgBox(0,"", $sFile)


Medic84 26-08-2009 12:19 1203612

А Спасибо это кнопка :happy:

ALFERIUS 26-08-2009 14:02 1203714

Все работает, но не так, как хотелось бы.

Обозначу ситуацию:
Есть текстовые строки, каждая вторая оканчивается одинаково, например:
преавя строка45678
вторая строка
третья строка45678
четвертая строка
и т.д.

Нужно получить:
преавя строка45678 вторая строка
третья строка45678 четвертая строка

выполняю:
$sFile = FileRead('d:\test.txt')
$text=StringRegExpReplace($sFile, "45678" & @CR, "45678")
MsgBox(0, "test", $text)

Он возвращает тот же текст, что в начале. Почему то после вставляемого текста всё равно вставляется @CR

Medic84 26-08-2009 14:10 1203720

Да потому что вот так надо

Код:

$sFile = FileRead('test.txt')
$text=StringReplace($sFile, "45678" & @CRLF, "45678 ")
MsgBox(0, "test", $text)



Время: 23:48.

Время: 23:48.
© OSzone.net 2001-