pb8下的en,right left怎么用啊,有了中文就不对了!

supere 2003-05-01 10:28:46
我想得到这个PATH的FILENAME
F:\mp3\女朋友 S.H.E.粤&国语专辑《女生宿舍》全碟MP3\01.恋人未满.mp3
程序如下
string s1,s2
s2 = "F:\mp3\女朋友 S.H.E.粤&国语专辑《女生宿舍》全碟MP3\01.恋人未满.mp3"
s1 = right(s2,len(s2) - lastpos(s2,"\"))

可是结果却是 "生宿舍》全碟MP3\01.恋人未满.mp3"

我该怎么做啊?
我用是是PB8.0.2 9506
...全文
149 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
xirumin 2003-05-03
  • 打赏
  • 举报
回复
pb8与7不同,mid,left,right等函数将汉字看做一个长.但是没有提供看做两个长的函数(大多数也不需要),
len 与 lenw()还是一样,一个将汉字做为一个长,一个做为两个长
我更喜欢这样
冷箫轻笛 2003-05-03
  • 打赏
  • 举报
回复
你在s1 = right(s2,len(s2) - lastpos(s2,"\"))
这句上用s1 = right(s2,lenw(s2) - lastpos(s2,"\"))
就是不用len而用lenw就可以
因为len把汉字看成是两个字符
而lenw看成一个
supere 2003-05-03
  • 打赏
  • 举报
回复
我现在是写了个函数来处理这个问题,得到文件名的!
这样是不是效率很低,有什么更好的方法吗?
string ls_rtn ="",t
t = right(pathname,1)
do while t <> "\"
ls_rtn = t + ls_rtn
pathname = left(pathname,len(pathname) - 1)
t = right(pathname,1)
loop

return ls_rtn
「已注销」 2003-05-03
  • 打赏
  • 举报
回复
听说打上补丁就OK了

我没敢打 因为我在代码中已经区分开来了

@_@
supere 2003-05-03
  • 打赏
  • 举报
回复
我就是这么做的啊!返回值还是不对啊
supere 2003-05-02
  • 打赏
  • 举报
回复
有这个函数吗??
supere 2003-05-02
  • 打赏
  • 举报
回复
哪位可以给我写个例子看一下!
取F:\mp3\女朋友 S.H.E.粤&国语专辑《女生宿舍》全碟MP3\01.恋人未满.mp3的文件名
cooltnt 2003-05-02
  • 打赏
  • 举报
回复
8.02应该和7.0一样,一个中文=两个字符。不行的话打补丁试试。
bomber2001 2003-05-02
  • 打赏
  • 举报
回复
用messagebox,跟踪一下
supere 2003-05-02
  • 打赏
  • 举报
回复
可是POS取的值还是不对的是
NoSARS 2003-05-02
  • 打赏
  • 举报
回复
应该用lenw()函数
zhouweiwansui 2003-05-01
  • 打赏
  • 举报
回复
用rightw试试
supere 2003-05-01
  • 打赏
  • 举报
回复
对不起!我没能明白两位大哥的意思!
可以告诉我,我该怎么做吗?
yuansheng218 2003-05-01
  • 打赏
  • 举报
回复
pb8.02已经没有中文和英文的区别了!
yuansheng218 2003-05-01
  • 打赏
  • 举报
回复
是不是应该使用left呀

743

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 脚本语言
社区管理员
  • 脚本语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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