символ конца строки при записи в файл

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
Mosk
Сообщения: 9
Зарегистрирован: 14 окт 2006, 13:54

Вместо символа конца строки(0x0a0d) пишется просто 0x0a...wtf???
пользуясь случаем,передаю привет маме...
Mosk
Сообщения: 9
Зарегистрирован: 14 окт 2006, 13:54

Суть: хочу сделать файл *.сsv из БД....
достаю построчно из базы,вставляю разделители между атрибутами,превращаю это все дело в строку и $line и пишу в файл вот таким макаром:
fwrite($f,$list."\n")....но когда открываешь файл в блокноте,то там не перевод строки в конце стоит,а какой-то квадратик...я пошел дальше,открыл файл не в блокноте,а в дебагере,и обнаружил,что "/n" он заменяет на 0x0a,хотя, как всем известно, перевод строки это 0x0a0d....из-за этого не получается корректный csv....помогите ,кто чем может....
пользуясь случаем,передаю привет маме...
Mosk
Сообщения: 9
Зарегистрирован: 14 окт 2006, 13:54

извиняюсь...рано запаниковал...бывает....
1) 0x0d - можно написать \r
2) писать надо не 0х0a0d,а 0x0d0a.....т.е. сначала в начало коретку,а потом уж вниз...вот такие вот тонкости..)
т.е. правильная запись будет :fwrite($f,$list."\r\n")....
извиняюсь....тему на склад,мало ли понадобится какому-нить ламеру еще ,типа меня....
пользуясь случаем,передаю привет маме...
isms.ru
Сообщения: 48
Зарегистрирован: 11 янв 2007, 16:45

Символы конца строки (ха, нет такого) зависят от операционной системы, в которой пишется файл.
В винде это перевод строки и возврат каретки (\n \r) в никсовых системах - только \n

В идеале наличие одного \n должно восприниматься правильно.
Mosk
Сообщения: 9
Зарегистрирован: 14 окт 2006, 13:54

вот именно что важна еще и последовательнось!!!!
\n \r - как ты пишешь - не правильно.....
\r\n - вот так работать будет......
у меня именно из-за последовательности долго и не получалось
пользуясь случаем,передаю привет маме...
isms.ru
Сообщения: 48
Зарегистрирован: 11 янв 2007, 16:45

Я делал проще:
убирал \r и все вставало на свои места.
Ответить