请问如何用两个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