请问如何检测文件夹里文件名并匹配文本框的代码怎么写?
vb吧
全部回复
仅看楼主
level 7
peeppp 楼主
请教大侠们
窗体上有个文本框(或是别的什么部件,比如列表框都行),里面有N行名字,按一个按钮,就遍历该程序所在的文件夹里的文件名(不管文件格式是什么,有可能是 txt,jpg,png或doc啥的),只要文件名前几个字(2个、3个或4个)与文本框里某一行的名字对应上了(不会有重复的),该行的内容就自动填入第2个文本框,遍历结束后,剩余不匹配的进第3个文本框
2022年09月18日 09点09分 1
level 15
大概思路:
用一个字符串数组存储文本框1当中的各个名字
在循环中用Dir遍历文件夹,获取每个文件名
对于某个文件名,循环检查数组每个名字是否为文件名的前几个字符(例如数组名称为s,文件名为f,对于数组s的第i个元素s(i),判断条件为s(i)=Left(f,Len(s(i)))),如果是,则将数组中的该名字移动到另一个表示“已匹配”的数组当中
上述循环结束后,分别将两个数组的内容显示到文本框2和3中
2022年09月18日 11点09分 2
感谢热情回复,谢谢~~~~
2022年09月19日 01点09分
@- 谢谢回复,感谢~~~
2022年09月19日 01点09分
@- 用InStr么,好像也可以啊:InStr(f,s(i))=1;至于另存一个文件名数组,恕我眼拙,没看出来跟“现取现用文件名”效率哪个更高
2022年09月19日 11点09分
level 11
'我本来一点不会,但是从网上信息研究后写出了这个,参考一下吧
Option Explicit
Private Sub Command1_Click()
Dim fs, f, fc, f1
Dim i As Integer
Dim b As Boolean
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.getfolder(App.Path)
Set fc = f.Files
List2.Clear
List3.Clear
For i = 0 To List1.ListCount - 1
b = False
For Each f1 In fc
If Left(f1.Name, Len(List1.List(i))) = List1.List(i) Then
List2.AddItem List1.List(i)
b = True
Exit For
End If
Next
If Not b Then
List3.AddItem List1.List(i)
End If
Next i
End Sub
Private Sub Form_Load()
List1.AddItem "周星驰"
List1.AddItem "刘德华"
List1.AddItem "成龙"
List1.AddItem "山口百惠"
End Sub
2022年09月18日 11点09分 3
感谢,厉害,代码简单明了,功能完全匹配
2022年09月19日 01点09分
您好,能再麻烦一下吗,增加一个文本框,里面粘贴一些名字,增加一个按钮b,按这个按钮后,用这个文本框里的名字与list1中的进行匹配,还是匹配上的在list2,匹配失败的放list3
2022年10月05日 08点10分
@peeppp 按钮b代码见7楼
2022年10月06日 12点10分
level 12
dim sPath as string
sPath=app.path & "\"
For i = 0 To List1.ListCount - 1
if dir(sPath & "*" & list(i) & "*") <> "" then
list2.additem list1.list(i)
else
list3.additem list1.list(i)
end if
Next
2022年09月20日 23点09分 4
我明白了,dir这里改成dir(sPath & list1.list(i) & "*")就可以了[真棒]
2022年09月21日 02点09分
@DiverAZAM 好方法,既然要用Dir函数,自然要巧用,我都没想到这个方法
2022年09月21日 10点09分
level 11
'按钮b
Private Sub Command2_Click()
Dim j As Integer
List2.Clear
List3.Clear
For j = 0 To List1.ListCount - 1
If InStr(Text1.Text, List1.List(j)) > 0 Then
List2.AddItem List1.List(j)
Else
List3.AddItem List1.List(j)
End If
Next j
End Sub
2022年10月05日 14点10分 7
感谢感谢!!!!!!!!
2022年10月10日 03点10分
level 5
为什么不用listview控件呢!一个顶3个列表框。[滑稽]
2022年10月06日 14点10分 8
1