vb text删除指定行
text中内容如下:1.........2....要求删除1至2之间的内容并替换成text2中的内容,1和2行内容要保留!谢谢!非常感谢clk186的解答!现在有个新的问...
text中内容如下:
1...
...
...
2....
要求删除1至2之间的内容并替换成text2中的内容,1和2行内容要保留!谢谢!
非常感谢clk186的解答!现在有个新的问题,如果text中还有其他内容不在1和2行之间,也被删了, 展开
1...
...
...
2....
要求删除1至2之间的内容并替换成text2中的内容,1和2行内容要保留!谢谢!
非常感谢clk186的解答!现在有个新的问题,如果text中还有其他内容不在1和2行之间,也被删了, 展开
6个回答
展开全部
看到楼主的补充,那么我就要修改我的回答了,那么我就又要下滑几楼了,本来一开始写的就是搜索指定文本,后来想想还是指定行吧~
Private Sub Command1_Click()
Dim a, i%, s1$, s2$
a = Split(Text1.Text, vbCrLf)
For i = 0 To UBound(a)
If InStr(a(i), "1") Then s1 = a(i) '查找关键字1
If InStr(a(i), "2") Then s2 = a(i) '查找关键字2
Next
Text1.Text = s1 & vbCrLf & Text2.Text & vbCrLf & s2
End Sub
s1和s2分别代表保留包含指定文本的行,反之就是删除替换该行,你说的1和2行内容要保留!谢谢!s1代表第一行,以此类推
稍微改一句上面的代码和调整这句代码的顺序就行了
我还说了,反之就是删除替换该行,也可以思考一下
由于修改次数有限制,如果你老是补充,不追问的话,超过限制我就没法回答了...
Private Sub Command1_Click()
Dim a, i%, s1$, s2$
a = Split(Text1.Text, vbCrLf)
For i = 0 To UBound(a)
If InStr(a(i), "1") Then s1 = a(i) '查找关键字1
If InStr(a(i), "2") Then s2 = a(i) '查找关键字2
Next
Text1.Text = s1 & vbCrLf & Text2.Text & vbCrLf & s2
End Sub
s1和s2分别代表保留包含指定文本的行,反之就是删除替换该行,你说的1和2行内容要保留!谢谢!s1代表第一行,以此类推
稍微改一句上面的代码和调整这句代码的顺序就行了
我还说了,反之就是删除替换该行,也可以思考一下
由于修改次数有限制,如果你老是补充,不追问的话,超过限制我就没法回答了...
追问
呃!不好意思,之前都是在手机上操作的不太方便!
你的代码我试了,也稍微的修改了下,但是如果text中含有多个1和2行,他只会选择最后一个1和2行的内容,这个就不知怎么该了,能否再麻烦一下,不好意思!我会再追加分数!谢谢!
追答
谁推荐的,这么不负责任^_^
Private Sub Command1_Click()
Dim a, i%
a = Split(Text1.Text, vbCrLf)
For i = 0 To UBound(a)
If InStr(a(i), "1") <= 0 And InStr(a(i), "2") <= 0 Then: a(i) = Text2.Text
Next
Text1.Text = ""
For i = 0 To UBound(a)
Text1.Text = Text1.Text & a(i) & vbCrLf
Next
End Sub
如果text中还有其他内容不在1和2行之间,也被删了,脑袋疼...你等大神吧
展开全部
Function getStr(Str, FirstStr, EndStr) As String
Dim I As Long
Dim T As Long
Dim J As Long
Dim Arr
Arr = Split(Str, vbCrLf)
For J = 0 To UBound(Arr)
If InStr(1, Arr(J), FirstStr) Then
I = J '''找到并记录1所在行
End If
If InStr(1, Arr(J), EndStr) Then
T = J ''''找2所在行
End If
Next
'''''拼接需要的字符
For J = 0 To UBound(Arr)
If I = T Then
getStr = getStr & Arr(J)
Else
If I < T Then
If I >= J Or T <= J Then
getStr = getStr & Arr(J)
End If
Else
If T >= J Or I <= J Then
getStr = getStr & Arr(J)
End If
End If
End If
Next
End Function
调用这个函数就可以实现!
Dim I As Long
Dim T As Long
Dim J As Long
Dim Arr
Arr = Split(Str, vbCrLf)
For J = 0 To UBound(Arr)
If InStr(1, Arr(J), FirstStr) Then
I = J '''找到并记录1所在行
End If
If InStr(1, Arr(J), EndStr) Then
T = J ''''找2所在行
End If
Next
'''''拼接需要的字符
For J = 0 To UBound(Arr)
If I = T Then
getStr = getStr & Arr(J)
Else
If I < T Then
If I >= J Or T <= J Then
getStr = getStr & Arr(J)
End If
Else
If T >= J Or I <= J Then
getStr = getStr & Arr(J)
End If
End If
End If
Next
End Function
调用这个函数就可以实现!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
每行都用句号隔开然后 substring(‘。’)比较方便
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Command1_Click()
Dim i As Integer, j As Integer, s1 As String, s2 As String
s1 = Left(Text1, InStr(Text1, vbCrLf) + 1)
s2 = Mid(Text1, InStr(Text1, 2))
Text1 = s1 & Text2 & vbCrLf & s2
End Sub
Private Sub Form_Load()
Text1 = "1..." & vbCrLf & "..." & vbCrLf & "..." & vbCrLf & "2...."
Text2 = "abc" & vbCrLf & "def"
End Sub
Dim i As Integer, j As Integer, s1 As String, s2 As String
s1 = Left(Text1, InStr(Text1, vbCrLf) + 1)
s2 = Mid(Text1, InStr(Text1, 2))
Text1 = s1 & Text2 & vbCrLf & s2
End Sub
Private Sub Form_Load()
Text1 = "1..." & vbCrLf & "..." & vbCrLf & "..." & vbCrLf & "2...."
Text2 = "abc" & vbCrLf & "def"
End Sub
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
读出1行和2行重写一个文件比较简单。直接删除的话比较难。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询