PDA

Просмотр полной версии : Конец строки


nc.STRIEM
30.06.2006, 01:14
у меня есть текстовой файл, который я читаю скриптом на php, дак вот подскажите как определить конец строки! пробовал читать функциями fread( ) fgetc( ) fgets( ) но не одна из них не вдет символ '\n' fgets( ) вроди как прекращает чтение когда доходит до '\n' но мне это не подходт! мне нужно чтоб я например смог просто сравнить if($с=='\n') (передворительно почитав в $c конец строки) вобщем как на C++
как это сделать в php??

Ch3ck
30.06.2006, 02:05
Тут всё немного по-другому...
ипользуй функцию file(Разбивает файл со строками в массив и каждому элементу соответствует строка из файла). Да ещё используй foreach. И посмотри мой брут на php там практически тоже самое. :)

Rabid Rabbit
30.06.2006, 02:13
а fgets() и на С++ есть, че не в курсе да=) оно действительно прекращает чтение когда достигнут конец строки. пользуй предыдущие две. скорее всего у тя ошибка не там где чтение из файла а там где определяешь \n

DIAgen
30.06.2006, 08:35
Можно легко подсчитать количество строк в файле:
<?
$file_array = file ("file.txt");
if(!$file_array)
{
echo("Ошибка открытия файла");
}
else
{
$num_str = count($file_array);
echo($num_str);
}
?>

SMiX
30.06.2006, 09:08
Твоя ошибка в том, что ты \n заключаешь в одинарные кавычки. У тебя он считается как 2 символа - "\" и "n", надо if($c=="\n")

Trinux
30.06.2006, 10:52
Твоя ошибка в том, что ты \n заключаешь в одинарные кавычки. У тебя он считается как 2 символа - "\" и "n", надо if($c=="\n")
Бинго! =)

ZaCo
30.06.2006, 11:15
ну все-таки чтобы только подсчитать кол-во строк достаточно использовать fgetc(). тем более врядли получится использовать file() для очень больших файлов.

Ch3ck
30.06.2006, 13:11
Можно легко подсчитать количество строк в файле:
<?
$file_array = file ("file.txt");
if(!$file_array)
{
echo("Ошибка открытия файла");
}
else
{
$num_str = count($file_array);
echo($num_str);
}
?>


Это я уж ему в аську скидывал... эму типо есть файл со словами, где каждое слово с новой строки, и надо каждое слово записать в свою переменную, вот и всё.
Полюбой тут надо пользоваться file и foreach :cool:

nc.STRIEM
30.06.2006, 19:49
а разве "\n" пишеться в двойных ковачках????? это константа и насколько я помню пишеться в одинарных!!!! в С точно в одинарных!
а задача не подсчитать а прост загонять в переменную по 1 строке! тоесть сначало 1строку (поработал с ней), потом 2 строку .. итд

nc.STRIEM
30.06.2006, 20:06
да действительно в php \n пишеться в двойных кавычках! вобщем то в этом и была ошибка! че надо уже написал!

function strread($file)
{
$z="";
$c=fgetc($file);
while($c!="\n"&&!feof($file))
{
$z.=$c;
$c=fgetc($file);
}
return $z;
}

всегото.... )))
всем спасибо за помощь!!!!! а Dr.Check спасиб за старания)))

Rabid Rabbit
03.07.2006, 14:59
Хех, все что в двойных интерпретируеца, в одинарных нет)) А воще такой стиль песания ламерский, иначе не назавешь)) Нада была стока песать вместа fgets() ??? )))

nc.STRIEM
04.07.2006, 00:44
согласен не надо было!! )))
прост сначало мне нужно было искать \n в массиве символов))