作者MOONRAKER (㊣祕密情報員)
看板Visual_Basic
標題Re: [VB6 ] 檔名過濾器
時間Mon Feb 2 18:12:56 2009
: → MOONRAKER:(1)使用filesystemobject讀取檔名
: → MOONRAKER:(2)使用regex類別建立正規表示式, 過濾取得的檔名
參考程式
Sub abc()
Set fshandle = CreateObject("scripting.filesystemobject")
Set fld0 = fshandle.getfolder("C:\inetpub\catalog.wci")
Set regex0 = New regexp
regex0.Pattern = "^0001\w*"
i = 1
For Each f In fld0.Files
If regex0.Test(f.Name) Then
Cells(i, 2) = f.Name
i = i + 1
End If
Next
End Sub
執行以前記得到「設定引用項目」裡面,把
microsoft vbscript regular expressions 5.5
勾起來。
getfolder()裡面是目標路徑,regex0.pattern是regular expression,你可以任改。
- 開頭的 ^ 表示字串開頭,不加就會match任何位置的 0001\w* 。
- 0001就是0001,沒有什麼特別。
- \w 是任意字元的意思,後面加 * 表示重覆 0 到無限次。
- 整個意思就是符合「開頭是0001,後面接什麼都可以,沒有也可以」的字串
詳細用法請爬文一下,看敝人稍早的post有提到「黑暗執行緒」的regex介紹,或看
http://msdn.microsoft.com/en-us/library/ms974570.aspx#scripting05_topic2
如果看不下去(我也認為很難看),請跳過前面看後面的對照表,
或自己搜尋VB6 regex或VB scripting regex。
--
BATCH 03 : 買張床 - 切達大俠 - 伐木人之歌 -
http://tinyurl.com/3zpyx5
[B4準備中]: 謳歌金錢(7/02) - 單車超人(7/23) -
http://tinyurl.com/66v6vq
[ 番外篇 ]: 包租婆也有過當羅莉的時候(7/17) -
http://tinyurl.com/6j4ale
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
■ 蒙帝派松正體中文計畫 ■ Spam-a-lot and enjoy the pythonesque delight!
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ http://www.youtube.com/user/JamesBondXD▄▄
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.168.228
→ MOONRAKER:啊對,這是用Excel寫的,所以foreach裡面怎麼輸出 02/02 18:13
→ MOONRAKER:也要由你改成你需要的樣子,比如用listbox之類 02/02 18:14
推 chiucs:感謝 02/03 13:26
推 chiucs:但,單單在for each:next沒有任何的判斷式1.5萬筆就要39秒 02/03 13:52
→ chiucs:似乎沒有解決我的問題 02/03 13:52
→ MOONRAKER:那他可能用一些更強的工具寫的,用VB也就是這樣了 02/03 17:22
→ MOONRAKER:或許要用一些低階的方法 02/03 17:25