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
展开
 我来答
syx54
2012-02-02 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2742万
展开全部
原数据放在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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百事牛
2024-10-22 广告
百事牛是共享提供商,我们提供可靠有效的服务,适当合理的授权费有利于的继续更新优化。同样的事情,同样的方法,百事牛团队十年磨一剑,始终至聚焦在密码恢复领域,深耕于此,我们已研制出有别于其他公司的算法和运算模式, 百事牛的暴力模式加入了分布式点... 点击进入详情页
本回答由百事牛提供
daviddyn
2012-01-30 · TA获得超过556个赞
知道小有建树答主
回答量:198
采纳率:0%
帮助的人:160万
展开全部
如果你的第一行共有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上试过,效果正确。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wu_kang_lin
2012-01-30 · TA获得超过170个赞
知道小有建树答主
回答量:490
采纳率:50%
帮助的人:315万
展开全部
如果每行的#是按你所给出的样式的话,可以用下列语句解决文本提取
Dim TempArray() As String
TempArray = Split(FullPath, "#", -1, 1)
Fullpath 为所读取的每行数据,按行读取文本不用我在给出代码了吧.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乔大大002
2015-01-01 · 超过25用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:84.7万
展开全部
建议: 6. 选中被复制的单元格,然后将鼠标移至该单元格的右下角,在鼠标指针变成细十字线状(通常称为填充柄)时,按住左键向下(上)拖拉,即可快速将被复制的单元格中的内容复制到拖拉所覆盖的区域。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
邂逅的守望
2012-01-30 · TA获得超过109个赞
知道小有建树答主
回答量:233
采纳率:0%
帮助的人:135万
展开全部
如果每行的#是按你所给出的样式的话,可以用下列语句解决文本提取
Dim TempArray() As String
TempArray = Split(FullPath, "#", -1, 1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式