引用 | 编辑
benzgigi
2008-02-25 11:13 |
2楼
▲ ▼ |
你好,
我的filelistbox会跟着dirlist变动~ 里面的档案也会增加或减少~ 用split我不知道怎么定义-前后的参数 谢谢~ ![]() |
引用 | 编辑
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"~ ![]() |
引用 | 编辑
benzgigi
2008-02-26 11:08 |
4楼
▲ ▼ |
这方法我有试过,
不过我这边所用的fir-月牙湾是会改变的~ 可能变成xxx-xxx 但是split是从已知的文字或数据当中撷取~ 不知道怎么针对变数撷取~ ![]() |
引用 | 编辑
benzgigi
2008-02-26 22:46 |
5楼
▲ ▼ |
下面是引用Freelife于2008-02-26 08:48发表的 : 超级感谢你的~ 我用出来了^^ 现在还不知道怎么把副档名(MPG)过滤掉... ![]() |
引用 | 编辑
totsi
2008-02-27 08:49 |
6楼
▲ ▼ |
一样用split("月牙弯.mpg",".")..
只是在另存的时候取阵列的第一个位置就好 Ex: yy = split("月牙弯.mpg",".") yy(0) = "月牙弯" yy(1) = "mpg" ![]() |
引用 | 编辑
Freelife
2008-02-27 09:55 |
7楼
▲ ▼ |
下面是引用totsi于2008-02-27 08:49发表的 : 副档名应该是取阵列最后一个值~ 这是假设,档案名称可能会有有很多"."的时候~ ![]() |
引用 | 编辑
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("变数",".") 我不知道这里的变数怎么定义和去撷取它,谢谢两位大大!! ![]() |
引用 | 编辑
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点选得到档案名称的 名字是我乱取的..所以看你的是用什么来取得档案名称..用那把这换掉就好 ![]() |
引用 | 编辑
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 ![]() |