請問如何用兩個text分別秀出filelistbox中所選的檔案名稱

Home Home
引用 | 編輯 benzgigi
2008-02-24 22:42
樓主
推文 x0
想請問各位大大~
我不知道如何把filelistbox中我選的檔案
能夠解讀到text1和text2
以-做區隔
如圖一是我目前做的結果,想做出圖 ..

訪客只能看到部份內容,免費 加入會員



獻花 x0
引用 | 編輯 Freelife
2008-02-25 08:43
1樓
  
查一下"Split"的用法~
有問題再提出來吧~

獻花 x0
引用 | 編輯 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發表的 :
[code]Dim xx() As String
Dim i As Integer

xx = Split("F.I.R-月牙彎.mpg", "-")
.......

超級感謝你的~
我用出來了^^
現在還不知道怎麼把副檔名(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發表的 :
一樣用split("月牙彎.mpg",".")..

只是在另存的時候取陣列的第一個位置就好

Ex: yy = split("月牙彎.mpg",".")
.......

副檔名應該是取陣列最後一個值~
這是假設,檔案名稱可能會有有很多"."的時候~

獻花 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
引用 | 編輯 benzgigi
2008-03-01 15:14
11樓
  
謝謝各位大大~
根據totsi大大所言~
後來我試出來了~
分別用兩次來隔離字串~
在秀出來真的就可以了^^
謝謝~

獻花 x0