请尽量用简单的方法

paullbm 2005-11-09 07:47:30
谁的方法最简单,谁就是得分者。

设有一个字符串s="c:\tencent\oicq\qq.exe"
经过对s处理后,使它变成s="qq"

说白一点,也就是当我知道一个文件的完整目录,我只想要它的文件名。
例子如上。


说明:本人一般认为,代码就一行,且字符数不是很多的为最简。只要本人认为是最简的时候就结贴。
...全文
106 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
paullbm 2005-11-09
  • 打赏
  • 举报
回复
一开始看时还没有注意,原来vbman2003(家人)积极性这么高。

呵呵!

方法:

Print Mid(Dir(s), 1, InStr(1, Dir(s), "."))

最好。

本贴已经结贴!
paullbm 2005-11-09
  • 打赏
  • 举报
回复
据本人实验。
发现 vbman2003(家人) 的最简单,可靠性也强。

虽然在 vbman2003(家人) 下二楼的朋友也是类似的方法,但采用先来先得分的原则,

分数归 vbman2003(家人) !
northwolves 2005-11-09
  • 打赏
  • 举报
回复
Split(Mid(s, InStrRev(s, "\") + 1), ".")(0)
vbman2003 2005-11-09
  • 打赏
  • 举报
回复
s=Mid(Dir(s), 1, InStr(1, Dir(s), ".") - 1)
vbman2003 2005-11-09
  • 打赏
  • 举报
回复
Print Mid(Dir(s), 1, InStr(1, Dir(s), "."))
vbman2003 2005-11-09
  • 打赏
  • 举报
回复
上面有问题,后缀不是三个字符的不行
vbman2003 2005-11-09
  • 打赏
  • 举报
回复
Print Left(Dir(s), Len(Dir(s)) - 4)
熊孩子开学喽 2005-11-09
  • 打赏
  • 举报
回复
抱歉,上面第二个函数写错了。应该是:
Function GetFileName(FileName as string) as String
Dim Names
Names = Split(FileName , ".", -1)
GetLastName = Names(LBound(Names))
End Function

这下可以了
IamDeane 2005-11-09
  • 打赏
  • 举报
回复
楼上的是对字符串的处理我不说了我来讲两个情况
1.使用CommonDialog1这个控件,他的FileTitle属性就是文件名
2.使用File1这个控件,他的FileName属性就是文件名
熊孩子开学喽 2005-11-09
  • 打赏
  • 举报
回复
获得文件名的子程序,参数可以是一个包含路径的任意文件名:
Function GetLastName(FileName as string) as String
Dim Names
Names = Split(FileName , "\", -1)
GetLastName = Names(UBound(Names))
End Function

获得文件名前缀的子程序,参数可以是一个任意文件名:
Function GetFileName(FileName as string) as String
Dim Names
Names = Split(FileName , ".", -1)
GetLastName = Names(UBound(Names))
End Function

调用第一个函数:
S ="c:\tencent\oicq\qq.exe"
S = GetLastName(S)
得到:S = "qq.exe"
再调用第二个函数:
S = GetFileName(S)
得到 S = "qq"
province_ 2005-11-09
  • 打赏
  • 举报
回复
s=Mid(s, InStrRev(s, "\") + 1, InStrRev(s, ".") - InStrRev(s, "\") - 1)
此时S就等于文件名

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧