Knowledge/Utility·Program

VBA chr(10) 과 chr(13) 차이

서 태평 2013. 10. 23. 13:44

Chr(13)은 동일한 줄의 첫번째 자리에 커서를 위치 시킵니다. 이것을 캐리지 리턴이라고 합니다.

Chr(10)은 현재 커서가 위치한 곳에서 아래로 한줄 내리는 기능을 담당합니다. 이것을 라인피드 라고 합니다.

즉, 우리가 키보드의 엔터키를 치면 눈에는 다음줄 처음으로 이동하지만

내부적으로는 현재 줄의 첫번째 자리에 커서가 갔다가 다음줄로 내려서는 것입니다.

 

이것은 터미널/서버 환경 시절에 RS-232C를 통한 시리얼 통신으로 터미널과 통신하던 시절에는 의미가 있었습니다만, 지금은 윈도우에서 둘다 개행문자로 활용하고 있습니다. 메모장과 같은 프로그램에서는 아직도 두 바이트를 이용해서 개행을 하고 있습니다. 

 

키보드 문자코드 값으로만 보면 다음과 같습니다.

Chr(13) :  캐리지 리턴

Chr(10) : 라인피드

 

비주얼베이직에서 정의된 문자 상수는 다음과 같습니다.

 

Chr(13) = vbCr

Chr(10) = vbLf

Chr(13)Chr(10) = vbCrLf

 

윈도우 계열 문서 편집기에서는 개행문자는 Chr(13)과 Chr(10) 두 바이트가 함께 위치해야 인식합니다. 유닉스 계열의 문서 편집기에서의 개행문자는 Chr(10) 한 바이트만 있으면 인식합니다.

다시말해서, 우리가 개행을 위해서 엔터키를 칠때 윈도우는 Chr(13)Chr(10) 두 바이트를 문서에 추가하고, 유닉스 계열은 Chr(10) 한 바이트만 추가 한다는 것을 의미 합니다.