| 网站首页 | 业界新闻 | 群组 | 人才 | 技术文章 | 下载频道 | 博客 | 代码贴 | 编程论坛
绝地游戏外挂辅助教学千里之行 始于足下
共有 363 人关注过本帖
标题:如何得到N层目录的最后一层?
只看楼主 收藏
ictest
Rank: 2
等 级:论坛游民
帖 子:185
专家分:53
注 册:2010-2-17
结帖率:70.37%
  问题点数:0  回复次数:5   
如何得到N层目录的最后一层?
例如目录路径为“C:\Documents and Settings\Administrator\桌面\数据\AAAA\BBBB\”,如何在text中得到“BBBB”?

或者说字符串“C:\Documents and Settings\Administrator\桌面\数据\AAAA\BBBB\”,如何在text中得到“BBBB”?

需要注意的是,目录层数不一定。
2017-08-28 13:10
ictest
Rank: 2
等 级:论坛游民
帖 子:185
专家分:53
注 册:2010-2-17
  得分:0 
经过自己的琢磨,已经自己解决了。

Dim ss2() As String

ss2 = Split(Text1.Text, "\")

MsgBox = ss2(Len(Text1.Text) - Len(Replace(Text1.Text, "\", "")) - 1)
2017-08-28 13:39
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:189
帖 子:4068
专家分:25057
注 册:2008-10-15
  得分:0 
直接显示,就是一行代码。当然,你的也只是二行代码
'从右第二个字符向左查找 \ 。然后从这个位置+1取字符串。 replace 是去掉可能存在的 \
MsgBox Replace(Mid(s, InStrRev(s, "\", Len(s) - 1) + 1), "\", "")


注:
1、s 等于你的 text1.text
2、如果定义为变量的话,就不要使用 replace ,而使用 IF 去掉。二行代码
  s2 = Mid(s, InStrRev(s, "\", Len(s) - 1) + 1)           '得到路径
  If Right(s2, 1) = "\" Then s2 = Left(s2, Len(s2) - 1)   '去尾部 \

3、你的代码发现BUG。
  当输入的路径没有最后的 \  时,你的代码结果错误。
  如输入:C:\Documents and Settings\Administrator\桌面\数据\AAAA\BBBB 时,
  你的代码返回 AAAA 。

4、你的代码修改:
第一行不变。第二行,如果是直接显示,那么改成:
ss2 = Split(text1.text, "\")
MsgBox IIf(ss2(UBound(ss2)) = "", ss2(UBound(ss2) - 1), ss2(UBound(ss2)))   '如果最后一个元素为空白,返回前一个元素,否则返回最后一个元素

如果给变量,用IF语句重写吧。IIF命令开销更大,它是函数。
程序代码:
If ss2(UBound(ss2)) = "" Then
    s2 = ss2(UBound(ss2) - 1)
Else
    s2 = ss2(UBound(ss2))
End If








[此贴子已经被作者于2017-8-28 16:54编辑过]


授人于鱼,不如授人于渔
早已停用QQ了
2017-08-28 16:48
xiangyue0510
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:79
帖 子:826
专家分:4857
注 册:2015-8-10
  得分:0 
同意风版的方法,直接用InStrRev查找最后一个“/”(如果路径最后是“/”,那就是找最后第二个)
2017-08-28 17:17
mclhr1996
Rank: 1
等 级:新手上路
帖 子:6
专家分:4
注 册:2017-9-17
  得分:0 
    s = "c:\aa\bb\"
        ary = Split(s, "\")
        MsgBox ary(UBound(ary) - 1)
2017-09-18 11:14
csl591
Rank: 4
等 级:贵宾
威 望:10
帖 子:71
专家分:92
注 册:2009-2-5
  得分:0 
5楼的代码最简洁。
前天 14:14







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.072570 second(s), 8 queries.
Copyright©2004-2017, BCCN.NET, All Rights Reserved