当前位置:编程学习 > VB >>

VB读取txt问题

t1和t2两个文件txt1文件内容位txt2的内容是这个

第一个要求 

 点击command1 就把txt1内容显示到Combo1控件里面,只显示浙江、四川、······· 不显示前面的数字加|符号

第二个要求

假如Combo1控件点击了四川,四川前面的数字是31123 ,这时就将t2文件里面只要含有31123的数显示到Combo2控件里面 还是不显示前面的数字只显示后面的汉字(成都、大邑、崇州·····)

请大家帮帮忙 谢了 分不多

 

追问:你的这些我试过了  完全能满足我的要求,谢谢了。    能帮忙注释下吗?  我是新手  不是很懂这个
答案:'未作错误判断,假设你的2个文件是存在的,而且格式也是正确的
Option Explicit
Dim s1, s2
Private Sub Combo1_Click()
    Dim i As Long, j As Long
    Combo2.Clear
    For i = 0 To UBound(s1)
        If InStr(s1(i), Combo1.Text) > 0 Then
            For j = 0 To UBound(s2)
                If Split(s1(i), "|")(0) = Split(s2(j), "|")(0) Then Combo2.AddItem Split(s2(j), "|")(1)
            Next
            Exit For
        End If
    Next
    If Combo2.ListCount > 0 Then Combo2.ListIndex = 0
End Sub
Private Sub Command1_Click()
    Dim i As Long
    Open "c:\1.txt" For Input As #1
    s1 = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbNewLine)
    Combo1.Clear
    For i = 0 To UBound(s1)
        If InStr(s1(i), "|") > 0 Then
            Combo1.AddItem Split(s1(i), "|")(1)
        End If
    Next
    Close #1
    Open "c:\2.txt" For Input As #1
    s2 = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbNewLine)
    Close #1
    If Combo1.ListCount > 0 Then Combo1.ListIndex = 0
End Sub

open"c:\1.txt"forinputas#1 lineinput#1,strtmp close text1.text=strtmp 。。。。不是#1是文件号 lineinput#1,strtmp 这里读第一行第二行重复下这一句就行了 读的多就是循环重复 可以 你可以加个判断么 ifdir("d:\1.txt")=""then msgbox"缺少组件" exitsub endif 不客气 呵呵结贴时多给几分就成了 在这聊吧我这QQ不太方便 没有数据会错误第一行空其它行有数据则不会报错 没数据 当然报错了 你再加个判断 ifeof(1)=truethenexitsub 这里的1是文件号#1 open"c:\1.txt"forinputas#1 lineinput#1,strtmp text1.text=strtmp lineinput#1,strtmp text2.text=strtmp close


给分加我QQ 25070202 远程手把手教你做

其实两个问题主要的就是一个问题,就是如果拆分“|”的问题

个人感觉使用split函数就可以了,只是第二个问题要用到从数组中得到那个数字然后通过数字进行第二个文件的拆分

那些地名全都是两个字的么?

上一个:求救vb考试,十万火急
下一个:VB程序的问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,