Различия между vbLf, vbCrLf и vbCr Константы
Я использовал константы типа vbLf
, vbCrLf
и vbCr
в MsgBox; он производит тот же вывод в MsgBox (текст "Hai" появляется в первом абзаце, и в следующем параграфе появляется слово "Welcome" )
MsgBox("Hai" & vbLf & "Welcome")
MsgBox ("Hai" & vbCrLf & "Welcome")
MsgBox("Hai" & vbCr & "Welcome")
Я знаю, что vbLf
, vbCrLf
и vbCr
используются для функций печати и отображения.
Я хочу знать разницу между константами vbLf
, vbCrLf
и vbCr
.
Ответы
Ответ 1
Constant Value Description
----------------------------------------------------------------
vbCr Chr(13) Carriage return
vbCrLf Chr(13) & Chr(10) Carriage return–linefeed combination
vbLf Chr(10) Line feed
-
vbCr: - вернуться к началу строки
Представляет символ возврата каретки для функций печати и отображения.
-
vbCrLf: - аналогично нажатию Enter
Представляет символ возврата каретки в сочетании с символом перевода строки для печати и отображения
функции.
-
vbLf: - перейти к следующей строке
Представляет символ перевода строки для функций печати и отображения.
Подробнее из Класс констант
Ответ 2
Три константы имеют сходные функции в настоящее время, но разные исторические корни, и очень иногда вам может потребоваться использовать один или другой.
Вам нужно подумать о временах старых ручных пишущих машинок, чтобы получить это происхождение. Для начала новой строки текста необходимо выполнить два разных действия:
- переместите печатающую головку назад влево. На практике в пишущей машинке это делается путем перемещения рулона, который переносит бумагу ( "каретку" ) на обратную сторону направо - печатающая головка фиксирована. Это возврат каретки.
- переместите бумагу по ширине одной линии. Это строка line.
В компьютерах эти два действия представлены двумя разными символами: возврат каретки CR
, символ ASCII 13, vbCr
; строка LF
, символ ASCII 10, vbLf
. В старые времена телетайпов и линейных принтеров принтеру необходимо было отправить эти два символа - традиционно в последовательности CRLF
- для запуска новой строки, и поэтому комбинация CRLF
- vbCrLf
- стала традиционной последовательностью строк, в некоторых вычислительных средах.
Проблема заключалась, разумеется, в том, что для обозначения окончания линии использовать только один символ, а терминал или принтер автоматически выполняют как возврат каретки, так и действие линии. Итак, прежде чем вы это узнали, у нас было 3 разных допустимых конца строки: LF
один (используется в Unix и Macintoshes), CR
один (видимо, используется в старых Mac OS) и комбинация CRLF
(используется в DOS, и, следовательно, в Windows). Это, в свою очередь, привело к осложнениям программ DOS/Windows, имеющих возможность открытия файлов в text mode
, где любая пара CRLF
, прочитанная из файла, была преобразована в один CR
(и наоборот при записи).
Итак, чтобы сократить (слишком слишком) длинную историю, есть исторические причины существования трех отдельных разделителей строк, которые теперь часто не имеют значения: и, пожалуй, лучший способ действий в .NET - использовать Environment.NewLine
, что означает, что кто-то решил для вас, что использовать, и будущие проблемы с переносимостью должны быть уменьшены.