VB怎样删除文本第一行空行
有一文本数据:例如:空行aaaaaaaaaaaaaa空行bbbbbbbbbbbbbbbbbbbbb空行空行ccccccccccccccccccccccc空行空行ddddd...
有一文本数据:
例如:
空行
aaaaaaaaaaaaaa
空行
bbbbbbbbbbbbbbbbbbbbb
空行
空行
ccccccccccccccccccccccc
空行
空行
ddddddddddddddddddddd
空行
空行
空行
空行
怎样才能得到:
aaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbb
ccccccccccccccccccccccc
ddddddddddddddddddddd
也就是没有空行的数据
用str = Replace(Join(Split(Join(Split(str, vbCrLf & vbCrLf), vbCrLf), vbCrLf & vbCrLf), vbCrLf), vbCrLf & vbCrLf, vbCrLf)
不能删除第一行和最后一行的空行,只能删除中间的 展开
例如:
空行
aaaaaaaaaaaaaa
空行
bbbbbbbbbbbbbbbbbbbbb
空行
空行
ccccccccccccccccccccccc
空行
空行
ddddddddddddddddddddd
空行
空行
空行
空行
怎样才能得到:
aaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbb
ccccccccccccccccccccccc
ddddddddddddddddddddd
也就是没有空行的数据
用str = Replace(Join(Split(Join(Split(str, vbCrLf & vbCrLf), vbCrLf), vbCrLf & vbCrLf), vbCrLf), vbCrLf & vbCrLf, vbCrLf)
不能删除第一行和最后一行的空行,只能删除中间的 展开
2个回答
展开全部
建一个Command1,我默认路径为D:\A.Txt,请自己修改。
代码如下。
===========
Dim s()
Private Sub Command1_Click()
ReDim s(0)
Open "d:\a.txt" For Input As 1
Do While EOF(1) = False
ReDim Preserve s(UBound(s) + 1)
Line Input #1, s(UBound(s))
Loop
Close
Open "d:\a.txt" For Output As 1
Dim i As Integer
For i = 1 To UBound(s)
If Len(s(i)) > 0 Then
If i = UBound(s) Then
Print #1, s(i);
Else
Print #1, s(i)
End If
End If
Next
Close
MsgBox "完毕"
End Sub
代码如下。
===========
Dim s()
Private Sub Command1_Click()
ReDim s(0)
Open "d:\a.txt" For Input As 1
Do While EOF(1) = False
ReDim Preserve s(UBound(s) + 1)
Line Input #1, s(UBound(s))
Loop
Close
Open "d:\a.txt" For Output As 1
Dim i As Integer
For i = 1 To UBound(s)
If Len(s(i)) > 0 Then
If i = UBound(s) Then
Print #1, s(i);
Else
Print #1, s(i)
End If
End If
Next
Close
MsgBox "完毕"
End Sub
展开全部
用正则替换
dim reg
Set reg= New RegExp
reg.Global = True
reg.Pattern = "(\n\r)"
Str=reg.replace(Str,"")
msgbox str
测试过的.
关于替换,要学习正则的方法.自己写一下正则的函数,作一个超级replace,在代码的任何地方都可以用.
用split和for循环.
strS = Split(str, vbCrLf & vbCrLf)
str=""
for i=0 to ubound(StrS)
if strS(i)<>"" then
if Str="" then
Str=strS(i)
else
Str=Str&vbCrLf & vbCrLf & strS(i)
end if
end if
dim reg
Set reg= New RegExp
reg.Global = True
reg.Pattern = "(\n\r)"
Str=reg.replace(Str,"")
msgbox str
测试过的.
关于替换,要学习正则的方法.自己写一下正则的函数,作一个超级replace,在代码的任何地方都可以用.
用split和for循环.
strS = Split(str, vbCrLf & vbCrLf)
str=""
for i=0 to ubound(StrS)
if strS(i)<>"" then
if Str="" then
Str=strS(i)
else
Str=Str&vbCrLf & vbCrLf & strS(i)
end if
end if
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询