vb 提取文本
假定text1.text中有fgh#aa#r#bb#fgh#cc#r#dd#d#ee#每行的#和#成对存在,提取#和#中间的字符,并假设每行的#和#的成对数有若干对,不局...
假定 text1.text中有
fgh#aa#r#bb#
fgh#cc#r#dd#d#ee#
每行的#和#成对存在,提取#和#中间的字符,并假设每行的#和#的成对数有若干对,不局限于两对或3对
提取后的结果为:
aabb
ccddee 展开
fgh#aa#r#bb#
fgh#cc#r#dd#d#ee#
每行的#和#成对存在,提取#和#中间的字符,并假设每行的#和#的成对数有若干对,不局限于两对或3对
提取后的结果为:
aabb
ccddee 展开
6个回答
展开全部
原数据放在Text1里,结果数据放在Text2里:
行数不限,每行#号对数不限制,但必须成对出现
Dim LinStr1 As String
Dim L1 As String
Dim L As Integer
Dim LinStr2 As String
Dim Jh As Integer
Dim JhL As Integer
Dim LStr As String
Dim i As Integer
LinStr1 = Text1.Text
LinStr2 = ""
L = InStr(LinStr1, vbCrLf)
Do While L <> 0
L1 = Left(LinStr1, L - 1)
JhL = Len(L1)
LStr = ""
Jh = 0
For i = 1 To JhL
If Mid(L1, i, 1) = "#" Then
Jh = Jh + 1
Jh = Jh Mod 2
Else
If Jh = 1 Then
LStr = LStr & Mid(L1, i, 1)
End If
End If
Next i
LinStr2 = LinStr2 & LStr & vbCrLf
LinStr1 = Right(LinStr1, Len(LinStr1) - L - 1)
L = InStr(LinStr1, vbCrLf)
Loop
If InStr(LinStr1, "#") <> 0 Then
L1 = LinStr1
JhL = Len(L1)
LStr = ""
Jh = 0
For i = 1 To JhL
If Mid(L1, i, 1) = "#" Then
Jh = Jh + 1
Jh = Jh Mod 2
Else
If Jh = 1 Then
LStr = LStr & Mid(L1, i, 1)
End If
End If
Next i
LinStr2 = LinStr2 & LStr & vbCrLf
End If
Text2.Text = LinStr2
行数不限,每行#号对数不限制,但必须成对出现
Dim LinStr1 As String
Dim L1 As String
Dim L As Integer
Dim LinStr2 As String
Dim Jh As Integer
Dim JhL As Integer
Dim LStr As String
Dim i As Integer
LinStr1 = Text1.Text
LinStr2 = ""
L = InStr(LinStr1, vbCrLf)
Do While L <> 0
L1 = Left(LinStr1, L - 1)
JhL = Len(L1)
LStr = ""
Jh = 0
For i = 1 To JhL
If Mid(L1, i, 1) = "#" Then
Jh = Jh + 1
Jh = Jh Mod 2
Else
If Jh = 1 Then
LStr = LStr & Mid(L1, i, 1)
End If
End If
Next i
LinStr2 = LinStr2 & LStr & vbCrLf
LinStr1 = Right(LinStr1, Len(LinStr1) - L - 1)
L = InStr(LinStr1, vbCrLf)
Loop
If InStr(LinStr1, "#") <> 0 Then
L1 = LinStr1
JhL = Len(L1)
LStr = ""
Jh = 0
For i = 1 To JhL
If Mid(L1, i, 1) = "#" Then
Jh = Jh + 1
Jh = Jh Mod 2
Else
If Jh = 1 Then
LStr = LStr & Mid(L1, i, 1)
End If
End If
Next i
LinStr2 = LinStr2 & LStr & vbCrLf
End If
Text2.Text = LinStr2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
百事牛
2024-10-22 广告
2024-10-22 广告
百事牛是共享提供商,我们提供可靠有效的服务,适当合理的授权费有利于的继续更新优化。同样的事情,同样的方法,百事牛团队十年磨一剑,始终至聚焦在密码恢复领域,深耕于此,我们已研制出有别于其他公司的算法和运算模式, 百事牛的暴力模式加入了分布式点...
点击进入详情页
本回答由百事牛提供
展开全部
如果你的第一行共有a对#号,且每下一行比上一行多一对#号,共有b行,提取结果放在Text2中,那么代码是这样:
tmp1 = Split(Text1.Text, vbCrLf)
For i = 0 To b - 1
tmp2 = Split(tmp1(i), "#")
For j = 1 To a + i * 2 + 1 Step 2
Text2.Text = Text2.Text & tmp2(j)
Next
Text2.Text = Text2.Text & vbCrLf
Next
在VB上试过,效果正确。
tmp1 = Split(Text1.Text, vbCrLf)
For i = 0 To b - 1
tmp2 = Split(tmp1(i), "#")
For j = 1 To a + i * 2 + 1 Step 2
Text2.Text = Text2.Text & tmp2(j)
Next
Text2.Text = Text2.Text & vbCrLf
Next
在VB上试过,效果正确。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果每行的#是按你所给出的样式的话,可以用下列语句解决文本提取
Dim TempArray() As String
TempArray = Split(FullPath, "#", -1, 1)
Fullpath 为所读取的每行数据,按行读取文本不用我在给出代码了吧.
Dim TempArray() As String
TempArray = Split(FullPath, "#", -1, 1)
Fullpath 为所读取的每行数据,按行读取文本不用我在给出代码了吧.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议: 6. 选中被复制的单元格,然后将鼠标移至该单元格的右下角,在鼠标指针变成细十字线状(通常称为填充柄)时,按住左键向下(上)拖拉,即可快速将被复制的单元格中的内容复制到拖拉所覆盖的区域。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果每行的#是按你所给出的样式的话,可以用下列语句解决文本提取
Dim TempArray() As String
TempArray = Split(FullPath, "#", -1, 1)
Dim TempArray() As String
TempArray = Split(FullPath, "#", -1, 1)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询