Разница между CR LF, LF и типами разрывов строк CR?

Если ваш вид верхнего уровня имеет только эти представления кнопок в качестве дочерних элементов, вы можете сделать

for (int i = 0 ; i < yourView.getChildCount(); i++) {
    Button b = (Button) yourView.getChildAt(i);
    b.setOnClickListener(xxxx);
}

. Если есть больше просмотров, вам нужно будет проверить, является ли выбранная вами одной из ваших кнопок .

623
задан Gallifreyan 14 August 2017 в 06:14
поделиться

7 ответов

На самом деле все зависит от того, какие байты хранятся в файле. CR - это байт-код для возврата каретки (со времен пишущих машинок) и LF аналогично для перевода строки. Это просто относится к байтам, которые помещаются в качестве маркеров конца строки.

Более подробная информация, как всегда, на википедии .

312
ответ дан 22 November 2019 в 21:42
поделиться

CR и LF являются управляющими символами, соответственно закодированными 0x0D (13 десятичных) и 0x0A (10 десятичных).

Они используются для отметить разрыв строки в текстовом файле. Как вы указали, Windows использует два символа - последовательность CR LF; Unix использует только LF, а старый MacOS (до OSX MacIntosh) использовал CR.

Апокрифическая историческая перспектива:

Как указано Питером , CR = Возврат каретки и LF = Line Feed , два выражения уходят корнями в старые пишущие машинки / TTY. LF переместил бумагу вверх (но сохранил горизонтальное положение идентичным), а CR вернул «каретку» так, чтобы следующий набранный символ находился в крайнем левом положении на бумаге (но в той же строке). CR + LF делал и то, и другое, то есть готовился набрать новую строку.

691
ответ дан 22 November 2019 в 21:42
поделиться

CR - код ASCII 13

LF - код ASCII 10.

Теоретически CR возвращает курсор в первую позицию (слева). LF перемещает курсор на одну строку вниз. Вот как раньше управляли принтерами и мониторами в текстовом режиме. Эти символы обычно используются для обозначения конца строк в текстовых файлах. В разных операционных системах используются разные соглашения. Как вы отметили, Windows использует комбинацию CR / LF, в то время как Mac до OSX использует только CR и так далее.

16
ответ дан 22 November 2019 в 21:42
поделиться

Печальное состояние «разделителей записей» или «ограничителей строк» ​​- это наследие темных веков вычислительной техники.

Теперь мы считаем само собой разумеющимся, что все, что мы хотим представить, есть каким-то образом структурированы данные и соответствуют различным абстракциям, которые определяют строки, файлы, протоколы, сообщения, разметку, что угодно.

Но когда-то это было не совсем так. В приложениях встроены управляющие символы и обработка для конкретных устройств. В мертвых системах, которые требовали и CR, и LF, просто не было абстракции для разделителей записей или ограничителей строк. CR был необходим для того, чтобы вернуть телетайп или видеодисплей в первый столбец, а LF (сегодня, NL, тот же код) был необходим, чтобы заставить его перейти к следующей строке. Я полагаю, идея сделать что-то другое, кроме сброса необработанных данных на устройство, была слишком сложной.

Unix и Mac фактически указали абстракцию для конца строки, представьте себе. К сожалению, они указали разные. (Unix, кхм, был первым.) И, естественно, они использовали управляющий код, который уже был «близок» к SOP

. Поскольку почти все наше операционное программное обеспечение сегодня является потомком операционной системы Unix, Mac или MS, мы застряли с путаницей в конце строки.

5
ответ дан 22 November 2019 в 21:42
поделиться

Системы, основанные на ASCII или совместимый набор символов используйте либо LF (Перевод строки, 0x0A, 10 в десятичном формате) или CR (возврат каретки, 0x0D, 13 в десятичном формате) индивидуально или CR с последующим LF (CR + LF, 0x0D 0x0A); Эти символы основаны на командах принтера: перевод строки указал, что одна строка бумага должна выходить из принтера, и возврат каретки указал, что принтер каретка должна вернуться в начало текущей строки.

Вот детали .

7
ответ дан 22 November 2019 в 21:42
поделиться

Это хорошее резюме, которое я нашел:

Символ возврата каретки (CR) ( 0x0D , \ r ) перемещает курсор в начало строки без перехода к следующей строке. Этот символ используется как символ новой строки в операционных системах Commodore и Early Macintosh (OS-9 и ранее).

Символ перевода строки (LF) ( 0x0A , \ n ]) перемещает курсор вниз на следующую строку без возврата в начало строки. Этот символ используется как символ новой строки в системах на базе UNIX (Linux, Mac OSX и т. Д.)

Последовательность конца строки (EOL) ( 0x0D 0x0A , \ r \ n ) фактически представляет собой два символа ASCII, комбинацию символов CR и LF. Он перемещает курсор как вниз к следующей строке, так и к ее началу. Этот символ используется в качестве символа новой строки в большинстве других операционных систем, отличных от Unix, включая Microsoft Windows, Symbian OS и другие.

Источник

432
ответ дан 22 November 2019 в 21:42
поделиться

Джефф Атвуд имеет недавний блог Об этом: Великий новенький раскол

вот сущность из Wikipedia :

Последовательность CR + LF была в общем использовании на многих ранних компьютерных системах, которые Усыновляли машины Teletype, как правило, ASR33, как консоль устройство, потому что эта последовательность была требуется для позиционирования этих принтеров на начало новой линии. На этих системы, текст часто регулярно Составлен для совместимости с этими Принтеры, поскольку концепция устройства Драйверы скрывают такие аппаратные детали из приложения еще не было хорошо развитый; Приложения должны были говорить непосредственно к машине телетапу и следовать его конвенциям. Разделение из двух функций скрыты факт, что печатающая голова не могла вернуться из ближайшего права на Начало следующей строки в однократное время. Вот почему Последовательность всегда была отправлена ​​с CR первый. На самом деле, это было часто необходимо отправлять дополнительные символы (посторонние CRS или нуль, которые игнорируются) к дайте время печати, чтобы перейти к левый край. Даже после телетапов были заменены компьютерными терминалами с более высокими скоростями бода, многие действующие Системы все еще поддерживаются автоматически отправка этих наполнителей персонажей для Совместимость с более дешевыми терминалами Это требовало несколько раз символов прокрутить дисплей.

45
ответ дан 22 November 2019 в 21:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: