Войти

Показать полную графическую версию : [решено] Не могу разобраться с FileOpen и StringRegExpReplace


ALFERIUS
26-08-2009, 12:05
Здравствуйе,

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

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

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

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

Medic84
26-08-2009, 12:14
Ага. Я думаю нужно сделать так
$file = FileOpen("test.txt", 4)
$Read = FileRead($file)
StringRegExpReplace ( $Read, "искомый", "заменяемый", 0)
Ну а если не так, то мы не телепаты тут сидим ))

ALFERIUS
26-08-2009, 12:16
Спасибо, как раз начал читать про эту функцию.
Все получилось.

FlatX007
26-08-2009, 12:19
$sFile = FileRead(@WindowsDir & '\win.ini')

MsgBox(0,"", $sFile)

Medic84
26-08-2009, 12:19
А Спасибо это кнопка :happy:

ALFERIUS
26-08-2009, 14:02
Все работает, но не так, как хотелось бы.

Обозначу ситуацию:
Есть текстовые строки, каждая вторая оканчивается одинаково, например:
преавя строка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
Да потому что вот так надо

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




© OSzone.net 2001-2012