2019年5月24日 星期五

vbCr = Chr(13)。vbLf = Chr(10)。vbCrLf = chr(13)+chr(10)。vbNewLine = vbCrLf (可以不用在乎任何平台問題)



1.

不同系統、不同平台,可能會有不同的換行字元規則。

VB6中有:
vbCr --- chr(13) (Cr=Carriage Return)
vbLf --- chr(10) (Lf=Line Feed)
vbCrLf --- chr(13)+chr(10)
vbNewLine --- 作業平台所指的新換行字元

用vbNewLine這個常數是最保險的,可以不用在乎任何平台問題。
不過,vbNewLine這個字比較長,個人習慣還是用vbCrLf,因為個人一直是只使用Windows平台。


2.

在最早的點陣印表機時代,

CR,即chr(13),就是把印字頭帶回最左方,但不換行。如果,這時就直接輸出字元印出的話,就會與之前已經印出的字重疊了。
而LF,即chr(10),就只是做換行動作。如果不先將印字頭拉到最左邊而直接換行印字,則印出位置將在上一行最後一個印完字元之後的那個停止位置,這樣就不是從最前面印起了。

所以,結合了CR+LF,才會真正跳到下一行的最前頭位置開始印。

而現在,有些平台、或有些程式(不要問我哪些,我也不知道),會將chr(13)、chr(10)、chr(13)+chr(10)都視為相等。所以,在那些環境下,隨便寫都不會有問題。
而目前,在Windows+VB6或VB2005下,都是要用chr(13)+chr(10)才能正確換行的(至少在TextBox中是如此),否則,只是在文字中安插了個看不到的字元(看起來像是空白,但實際不是)而已。


----------------------------

來源:http://www.blueshop.com.tw/board/FUM200501271723350KG/BRD20070927180654PKN.html

沒有留言:

張貼留言