用vb找到文本中重复的行?
用vb建立一个窗体,上面有两个文本框text1、text2、text3(multiline属性都是true)和一个按钮command1。现在在文本框text1中输入有重复...
用vb建立一个窗体,上面有两个文本框text1、text2、text3(multiline属性都是true)和一个按钮command1。现在在文本框text1中输入有重复行的内容(输入的行数不限,可能很多),在文本框text2中自动把那些重复的行去掉。并且在text3中把那些重复的行的内容显示出来?去掉重复行的内容的代码网上已经有了:http://zhidao.baidu.com/question/153147334.html?an=0&si=1,所以只需要在那个代码的基础上解决把重复的行的内容显示到text3的代码写出。
这个问题的要求是:把去掉重复行的内容输出到text2的同时,把过滤掉的内容输出到text3。前一个问题参考上面的链接。可参考:http://hi.baidu.com/aboutvb/blog/item/6eb559968ae16813d21b70d9.html 展开
这个问题的要求是:把去掉重复行的内容输出到text2的同时,把过滤掉的内容输出到text3。前一个问题参考上面的链接。可参考:http://hi.baidu.com/aboutvb/blog/item/6eb559968ae16813d21b70d9.html 展开
展开全部
Private Sub Command1_Click()
Dim s1, s2, s3
For Each s1 In Split(Text1, vbCrLf)
If InStr(vbCrLf & s2 & vbCrLf, vbCrLf & s1 & vbCrLf) = 0 Then
s2 = s2 & vbCrLf & s1
Else
s3 = s3 & vbCrLf & s1
End If
Next
Text2 = Mid(s2, 3)
Text3 = Mid(s3, 3)
End Sub
Dim s1, s2, s3
For Each s1 In Split(Text1, vbCrLf)
If InStr(vbCrLf & s2 & vbCrLf, vbCrLf & s1 & vbCrLf) = 0 Then
s2 = s2 & vbCrLf & s1
Else
s3 = s3 & vbCrLf & s1
End If
Next
Text2 = Mid(s2, 3)
Text3 = Mid(s3, 3)
End Sub
展开全部
自己做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
方法一:将TEXT1中数据逐行添加到数据库中,然后分组查询,select 字段名,count(*) as 重复次数 from 表 group by 字段,把查到的数据全部赋值给TEXT2,把重复次数大于0的赋值给TEXT3
方法二:利用数组,A=SPLIT(TEXT1.TEXT,CHR(13)+CHR(10)),然后做两层循环
dim a() as string
A=SPLIT(TEXT1.TEXT,CHR(13)+CHR(10))
for i=0 to ubound(a)
if a(i)<>"" then
for j=0 to ubound(a)
if a(i)=a(j) then
text3.text=text3.text+chr(13)+chr(10)+"第" & j & "行与第" & i ^ "行重复:" & a(j)
a(j)=""
end if
next
text2.text=text2.text+chr(13)+chr(10)+a(i)
end if
next
方法二:利用数组,A=SPLIT(TEXT1.TEXT,CHR(13)+CHR(10)),然后做两层循环
dim a() as string
A=SPLIT(TEXT1.TEXT,CHR(13)+CHR(10))
for i=0 to ubound(a)
if a(i)<>"" then
for j=0 to ubound(a)
if a(i)=a(j) then
text3.text=text3.text+chr(13)+chr(10)+"第" & j & "行与第" & i ^ "行重复:" & a(j)
a(j)=""
end if
next
text2.text=text2.text+chr(13)+chr(10)+a(i)
end if
next
追问
运行出现类型不匹配
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
既然你已经找到代码,那我就借花献佛一下:
If InStr(StrTemp, ObjStr) Then
StrTemp = Replace(StrTemp, ObjStr, ""):
Text2 = Text2 & ObjStr & vbCrLf
Else ‘在这里多两行就行啦
Text3 = Text3 & ObjStr & vbCrLf
End If
If InStr(StrTemp, ObjStr) Then
StrTemp = Replace(StrTemp, ObjStr, ""):
Text2 = Text2 & ObjStr & vbCrLf
Else ‘在这里多两行就行啦
Text3 = Text3 & ObjStr & vbCrLf
End If
追问
不能用。请写出完整的代码
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
dim a() as string
A=SPLIT(TEXT1.TEXT,CHR(13)+CHR(10))
for i=0 to ubound(a)
if a(i)<>"" then
for j=0 to ubound(a)
if a(i)=a(j) then
text3.text=text3.text+chr(13)+chr(10)+"第" & j & "行与第" & i ^ "行重复:" & a(j)
a(j)=""
end if
next
text2.text=text2.text+chr(13)+chr(10)+a(i)
end if
next
A=SPLIT(TEXT1.TEXT,CHR(13)+CHR(10))
for i=0 to ubound(a)
if a(i)<>"" then
for j=0 to ubound(a)
if a(i)=a(j) then
text3.text=text3.text+chr(13)+chr(10)+"第" & j & "行与第" & i ^ "行重复:" & a(j)
a(j)=""
end if
next
text2.text=text2.text+chr(13)+chr(10)+a(i)
end if
next
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询