Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 135
Благодарности: 32

Профиль | Отправить PM | Цитировать


Я считаю, что в пользовательской функции _FileReadToArray() допущена ошибка.
Рассматриваю строку из этой функции:
$aArray = StringSplit(StringStripCR(FileRead($hFile, FileGetSize($sFilePath))), @LF)
Поясню свою позицию. Дело в том, что строка текстового файла может иметь 3 типа завершения:
1 - @CRLF
2 - @CR
3 - @LF
Автор наверное посчитал что символ @LF - неотъемлемый элемент перевода на новую строку, и понадеявшись на него, одним махом удалил все @CR из полученного текста...
На деле же получается, что если строка завершается только символом @CR, то после такой обработки эта строка соединится со следующей, а в результате мы получим неверный массив.
Предлагаю свой вариант решения:
$aArray = StringSplit(StringRegExpReplace(FileRead($hFile,FileGetSize($sFilePath)),"\r\n|\n",@CR),@CR)

proxy
Цитата:
имеется: файли txt со списком строк
необходимо: из этого файла удалить определенную строчку
Пример замены текста в файле: http://forum.oszone.net/post-533177-616.html

Отправлено: 00:32, 21-06-2007 | #56