易表在线答疑技术与交流用户社区 → [求助]如何去除字符串最后部分


  共有7996人关注过本帖树形打印复制链接

主题:[求助]如何去除字符串最后部分

帅哥哟,离线,有人找我吗?
老宋
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:215 积分:148 威望:0 精华:0 注册:2007/7/18 15:48:00
[求助]如何去除字符串最后部分  发帖心情 Post By:2009/10/30 10:03:00 [显示全部帖子]

如何设置函数实现将
Aar|Bddd|Case|Danger|Effect
转化为
Aar|Bddd|Case|Danger|

按照分隔符,将分隔符最后的一组数据删除


 回到顶部
帅哥哟,离线,有人找我吗?
老宋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:215 积分:148 威望:0 精华:0 注册:2007/7/18 15:48:00
  发帖心情 Post By:2009/10/31 0:43:00 [显示全部帖子]

感谢两位版主的回复,思路很特别,但我发现这种算法有个问题,就是当最后一个字符串被其他字符串包含的时候,就会出现替换其他的字符。

例如对于字符串"Aarc|Bddd|Aarb|Danger|Aar",如果用两位的算法,结果都是Aarc|Bdddb|Danger


 回到顶部
帅哥哟,离线,有人找我吗?
老宋
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:215 积分:148 威望:0 精华:0 注册:2007/7/18 15:48:00
  发帖心情 Post By:2009/11/1 10:20:00 [显示全部帖子]

没想到几位版主如此热心,发现易表的“易”还是主要体现在版主的平易近人。

wjq1072版主的思路看明白了,但函数不能执行,一执行就死机。
cry版主的函数能用,很清晰,很精炼。

我也想到一种算法,但太长。
Eval("Substitute(Split("+Rept("Substitute(",Len("Aarc|Bddd|Aarb|Danger|Aar")-Len(Substitute("Aarc|Bddd|Aarb|Danger|Aar","|",""))-1)+""""+"Aarc|Bddd|Aarb|Danger|Aar"+""""+Rept(",""|"",""*"",1)",Len("Aarc|Bddd|Aarb|Danger|Aar")-Len(Substitute
("Aarc|Bddd|Aarb|Danger|Aar","|",""))-1)+",""|"",1),""*"",""|"")")

这种切割算法的一个应用分享给大家
把用GetFileName返回的文件名转换成一个路径。易表有关路径的参数只有DocDir();易表文件目录,WinDir();Windows安装目录,SysDir();Windows系统目录.AppDir();易表安装目录.
没有指定目录的功能,对于易表程序的数据备份,可以灵活选择数据目录,可使易表程序呈现给用户的只有运行程序快捷方式和数据目录。


 回到顶部