vbCrLf,vbCr,vbLf 是 VB 語言里定義的常數(shù),其定義如下:
發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務至上”的服務理念,堅持“二合一”的優(yōu)良服務模式,真誠服務每家企業(yè),認真做好每個細節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及成都門窗定制等,在成都網(wǎng)站建設、成都全網(wǎng)營銷、WAP手機網(wǎng)站、VI設計、軟件開發(fā)等項目上具有豐富的設計經(jīng)驗。
通常,在字符串中進行換行,可以使用 vbCrLf 常數(shù),使用示例代碼如下:
Sub?ShowFileList(folderspec)
Dim?fs,?f,?f1,?fc,?s
Set?fs?=?CreateObject("Scripting.FileSystemObject")
Set?f?=?fs.GetFolder(folderspec)
Set?fc?=?f.Files
For?Each?f1?in?fc
s?=?s??f1.name
s?=?s???vbCrLf
Next
MsgBox?s
End?Sub
textbox1.text=io.file.readalltext(Application.StartupPath() "\file\t1.txt",System.Text.Encoding.Default).replace(vbcr,"").replace(vblf,"")
全部讀取,不分行,已經(jīng)刪除vbcrlf換行符。
==我好像看錯題目了。
textbox開啟多行(multiline)就可以多行顯示,按行讀取是不會讀取換行符的。
textbox1.text=io.file.readalltext(Application.StartupPath() "\file\t1.txt",System.Text.Encoding.Default)
有些文本中的換行符不一定是vbCrLf,也有可能是vbCr或vbLf,你可以這樣試試:
a = split(textbox1.text, vbcr)
或
a = split(textbox1.text, vblf)
vbcr 回車,就是跳到本行的開頭位置
vblf 換行,就是跳到下一行的當前列位置
早期的英文打字機在打完一行準備打另一行時,要執(zhí)行兩個動作,就是回車和換行,而現(xiàn)在的電腦鍵盤是從打字機的鍵盤延伸而來的,所以保留了這個傳統(tǒng)(不過電腦鍵盤的回車鍵是同時執(zhí)行了這兩個動作的)
這兩個動作在程序設計中一般也是合在一起用的,比如VB中就用vbcrlf來表示,所以你說的例子可改為:
Label1.Caption = "合并" vbCrLf Join(a, "")
除了這種用法,還可以直接用回車換行符的ASCII碼表示:
Label1.Caption = "合并" Chr(13) Chr(10) Join(a, "")
另外補充一句,在連接字符串時,最好不要用+號,要用號。
可以用chr函數(shù)或者vbCrLf這種表示
chr(10):換行,相當于vbLf
chr(13):回車,相當于vbCr
chr(13)+chr(10):回車+換行,相當于vbCrLf
兩個字符,你說什么區(qū)別。
Windows操作系統(tǒng)中,標準的換行標記是vbCrLf。不過有些軟件/控件也支持vbCr或則vbLf換行。(比如VB中的Label,MessageBox等)
還有些比較特殊,比如說RichTextBox,它內(nèi)部用的換行標記是vbLf。你要是直接把RichTextBox的內(nèi)容保存為txt文件,再用記事本打開就會發(fā)現(xiàn)原來換行的地方都沒有換行,而是有一個黑色的方塊。因為記事本只認標準的vbCrLf,不會因為你有一個vbLf就換行。
這是Windows操作系統(tǒng)中的情況。如果在其他操作系統(tǒng)中情況又不一樣了。
UNIX/Linux采用換行符LF表示下一行,
蘋果機(MAC
OS系統(tǒng))則采用回車符CR表示下一行。
不過,上面的都是操作系統(tǒng)的標準或者說一種約定,具體怎么實現(xiàn)是由程序決定的。你用的程序/控件不一定遵守這個,比如前面提到的RichTextBox,它就要用vbLf做換行標記。
另外,它們的作用也不一定就是用來“換行”……
總之,vbCr和vbLf就兩個字符而已,怎么處理由程序/控件來決定。