четверг, 26 мая 2011 г.

Перевод строки

Разбаловались мы программисты высокого уровня замечательным символом \n. Но не так часто знаешь что это за символ и что за собой кроет. Assembler. Все мы знаем что для перевода строки достаточно вывести 10 символ как любимая консолька перескочит вниз, но с файлом такие штучки не пройдут.
 Точнее нет, конечно символ запишется, но мы совсем забыли о том что такое ОП. Оказывается различные ОП, по разному трактуют символы перевода строк, конечно под каждую ОП создан редактор не использующий стандартные библиотеки и способный трактовать всё что хочешь и всё как хочешь, но это не стандартно. В первые с различными трактовками перевода строк я столкнулся на Питоне, когда под Виндой решил чуточку подредактировать скрипт который на писал на Линуксе(Of Top чувствуете разницу ПОД Виндой и НА Линуксе) И обнаружил что открытая блокнотом программа состоит из 1 длиннющей строчки, время от времени с какими-то квадратиками вместо переносов строки. Ну открыл в notepad++ и всё нормально (с тех пор не использую никогда блокнот). Если мы поместим 10 символ в фаил блокнот его отобразит НИКАК. Если мы поместим символ перевода строки в фаил (0Ah) то его блокнот тоже отобразит НИКАК. Чтоб блокнот его хоть кк-то отобразил мы должны поместит символ возврата каретки(0Dh) и потом Символ переноса строки(0Ah). Эта схема будет нормально интерпретироватся во всех редакторах, даже тех кто понимает обыкновенный перевод строки 10 символом, да к стати, вы можете меня наругать и будете правы. Ведь 10 символ это и есть 0Ah в шестнадцатеричной кодировке :) а 0Dh - возврат каретки. И если мы заглянем в учебник нам скажут "переводите так:
сначала 10 потом 13" (хоть порядок не имеет значения). И сетовать мы можем на заботливую консоль, и на свою природную лень.

2 комментария:

  1. гг) "под виндой и НА линуксе") ну ты как всегда, не мог винду не обосрать))

    ОтветитьУдалить