引用 | 編輯
benzgigi
2008-02-25 11:13 |
2樓
▲ ▼ |
你好,
我的filelistbox會跟著dirlist變動~ 裡面的檔案也會增加或減少~ 用split我不知道怎麼定義-前後的參數 謝謝~ x0 |
引用 | 編輯
Freelife
2008-02-26 08:48 |
3樓
▲ ▼ |
複製程式
Dim xx() As String Dim i As Integer xx = Split("F.I.R-月牙彎.mpg", "-") For i = 0 To UBound(xx) MsgBox xx(i) Next i 這是個簡單的範例~ 這樣會取出你要的第一個內容"F.I.R"~ x0 |
引用 | 編輯
benzgigi
2008-02-26 11:08 |
4樓
▲ ▼ |
這方法我有試過,
不過我這邊所用的fir-月牙灣是會改變的~ 可能變成xxx-xxx 但是split是從已知的文字或數據當中擷取~ 不知道怎麼針對變數擷取~ x0 |
引用 | 編輯
benzgigi
2008-02-26 22:46 |
5樓
▲ ▼ |
下面是引用Freelife於2008-02-26 08:48發表的 : 超級感謝你的~ 我用出來了^^ 現在還不知道怎麼把副檔名(MPG)過濾掉... x0 |
引用 | 編輯
totsi
2008-02-27 08:49 |
6樓
▲ ▼ |
一樣用split("月牙彎.mpg",".")..
只是在另存的時候取陣列的第一個位置就好 Ex: yy = split("月牙彎.mpg",".") yy(0) = "月牙彎" yy(1) = "mpg" x1 |
引用 | 編輯
Freelife
2008-02-27 09:55 |
7樓
▲ ▼ |
下面是引用totsi於2008-02-27 08:49發表的 : 副檔名應該是取陣列最後一個值~ 這是假設,檔案名稱可能會有有很多"."的時候~ x1 |
引用 | 編輯
benzgigi
2008-02-27 10:08 |
8樓
▲ ▼ |
我是這樣寫~
Dim xx() As String Dim i As Integer xx = Split(filelist.filename, "-") For i = 0 To UBound(xx) text1 = xx(0) text2 = xx(1) Next i 她就秀出f.i.r 月牙灣.mpg 所以我的yy = split("變數",".") 我不知道這裡的變數怎麼定義和去擷取它,謝謝兩位大大!! x0 |
引用 | 編輯
totsi
2008-02-28 09:48 |
9樓
▲ ▼ |
sorry..沒注意到回覆錯誤..
副檔名的確是陣列的最後一個值(感謝Freefile兄(?)的更正).. 不過我的意思是以他的需求抓第一個的就可以了 如造成誤導..請見諒 不過在Windows底下一般副檔名一定是在檔案名稱最後四個字元(除非使用者亂搞).. 不然自己用的話..是可以把多"."的問題用格式去排除.. 複製程式 dim FullFileName as string dim SplitArr() as string dim FileName as string dim MainFileName astring '給檔案名稱 FullFileName = "F.I.R-月牙彎.mpg" '分離原唱與歌曲名 SplitArr = split(FullFileName, "-") '此時 SplitArr(0) = "F.I.R", ' SplitArr(1) = "月牙彎.mpg" FileName = SplitArr(1) '分離檔名與副檔名 - '這邊是偷懶所以用相同的陣列變數做..你可以先確認是不是可以這樣玩.. '太久沒做忘記以前怎麼弄得 SplitArr = split(FileName,".") '此時的SplitArr(0) = "月牙彎" ' SplitArr(1) = "mpg" 至少在split的部分可以這樣玩 至於你說的變數名稱問題..依照上面的範例應該是那樣用 只要把FullFileName給值的部分由抓到你選擇的名稱的變數給就可以了 Ex:FullFileName = GetSelectFileName() 之類的 PS.GetSelectFileName()這東西是你用來取得左側Listbox點選得到檔案名稱的 名字是我亂取的..所以看你的是用什麼來取得檔案名稱..用那把這換掉就好 x1 |
引用 | 編輯
totsi
2008-02-28 09:56 |
10樓
▲ ▼ |
不過回完才發現好像我回錯了..
真是尷尬 如同Freelife兄(?)(對不起..很容易打成Freefile -.-)所說的.. 用split的話..要確定整個檔名是沒有含你要的分離字元的狀況下才能用 如果說檔名是"F.I.R-月.牙.灣.mpg"的話..那你會得到4個值..而不是兩個 比較簡單的做法是建議可以用搜尋副檔名的方式去把檔名分離出來.. 例如是用Mid(文字,字元位置起點,(字元位置終點-副檔名長度)) 這樣可以確保副檔名不會進來..以及不會把原本檔名的內容也消掉.. 不然就是使用split之後,把所有的陣列值都用 '&' 運算子加回來,並排除最後一個陣列值(副檔名所在) 複製程式 for ( i = 0 to Ubound(SplitArr) -1 ) MainFileName = MainFileName & SplitArr(i) next i 這樣子就可以避免主要檔案名稱在處理的時候被切割掉 所以回歸最根本的就是..你所需要的檔案名稱的格式為何? 是沒有特殊符號在內..還是有一堆特殊符號在內? 因為以Emule內的檔案習慣會用"."來替代space..XD x1 |