vb如何去掉最后的换行符?

Open App.Path & "\日志.txt" For Input As #1
n = 0
Do While Not EOF(1)
Line Input #1, tmp
If tmp <> "" And Trim(tmp) <> "" Then
sQw = sQw + tmp & vbCrLf
n = n + 1
End If
Loop
Close #1
如何去掉 sQw的最后一个vbcrlf?

这是VB在读多行文件时出现的问题,最后行多了换行字符。

可以用Left 函数来取去除最后换行字符的文本。

Left 函数

返回 Variant
(String),其中包含字符串中从左边算起指定数量的字符。

Len 函数

返回 Long,其中包含字符串内字符的数目。

Option Explicit
    Dim s As String
    Dim i As Long
    Dim fname As String
    Dim strWj As String
    
Private Sub Command1_Click()
    ' è®¾ç½®â€œCancelError”为 True
    CommonDialog1.CancelError = True
    On Error GoTo ErrHandler
    ' è®¾ç½®æ ‡å¿—
    CommonDialog1.Flags = cdlOFNHideReadOnly
    ' è®¾ç½®è¿‡æ»¤å™¨
    CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _
    "(*.txt)|*.txt|Batch Files (*.bat)|*.bat"
    ' æŒ‡å®šç¼ºçœçš„过滤器
    CommonDialog1.FilterIndex = 2
    ' æ˜¾ç¤ºâ€œæ‰“开”对话框
    CommonDialog1.ShowOpen
    ' æ˜¾ç¤ºé€‰å®šæ–‡ä»¶çš„名字
    'MsgBox CommonDialog1.FileName
    Open CommonDialog1.FileName For Input As #1
        Do Until EOF(1)
            Line Input #1, s
            strWj = strWj & s & vbCrLf
            i = i + 1
        Loop
        Text3 = i
    Close #1
    Text1 = Left(strWj, Len(strWj) - 2) '去除读入文本多余的换行符。
    Debug.Print Len(strWj)
    Debug.Print Len(Text1)
    Exit Sub
    
ErrHandler:
    ' ç”¨æˆ·æŒ‰äº†â€œå–消”按钮
    Exit Sub
End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-03
1个换行符号应该是2个字符,所以:
sQw = Left(sQw,Len(sQw)-2)本回答被提问者采纳
第2个回答  2011-10-31
vbCrLf=chr(10)+chr(13)占两位
所以只要从左边开始截取长度-2位就行了
sQw=left(sQw,len(sQw-2))
第3个回答  2011-10-31
sQw = replace(sQw,vbCrLf,"")
相似回答