设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

12下一页
返回列表
查看: 401|回复: 30

[求助] 分割字符串,错在什么地方?(Lisp调用VBA函数)

[复制链接]

签到天数: 1182 天

连续签到: 16 天

[LV.10]以坛为家III

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-11-18 14:00:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 /db_自贡黄明儒_ 于 2016-12-31 21:47 编辑

;;分割字符串
(defun w5 ()
  (setq scr (vlax-create-object "ScriptControl"))
  (vlax-put Scr "language" "JScript")
  (vlax-invoke scr 'AddCode "function aa(bb){x=bb.split(',');return x;}")
  (setq str (strcat "aa(" "12了,地" ")"))
  (vlax-invoke scr 'eval str)
)


上一篇:请newer帮忙编个程序,批量实体合并
下一篇:大师们都来看看,这是啥问题?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复
百度谷歌雅虎搜狗搜搜有道360奇虎

使用道具 举报

签到天数: 259 天

连续签到: 1 天

[LV.8]以坛为家I

已领礼包: 438个

财富等级: 日进斗金

发表于 2016-11-19 18:49:19 | 显示全部楼层
(defun w5 (str)
  (setq scr (vlax-create-object "ScriptControl"))
  (vlax-put Scr "language" "JScript")
  (vlax-invoke scr 'AddCode "function aa(bb){x=bb.split(',');return x[0];}")
  (setq str (strcat "aa(\"" str "\")"))
  (setq a(vlax-invoke scr 'eval str))
  (vlax-release-object scr)
  a
)




命令: (w5 "ab,cd")
"ab"

你要得到一个表是很难的,如果返回一个分割后的字符串(中间空格?),又失去了意义,和lisp直接写是一样的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 0 反对 1

使用道具 举报

签到天数: 54 天

连续签到: 1 天

[LV.5]常住居民I

已领礼包: 6个

财富等级: 恭喜发财

发表于 2016-11-18 14:11:29 | 显示全部楼层
本帖最后由 CSharpBoy 于 2016-11-18 14:13 编辑
(defun w5 ()
  (setq scr (vlax-create-object "ScriptControl"))
  (vlax-put Scr "language" "JScript")
  (vlax-invoke scr 'AddCode "function aa(bb){x=bb.split(',');return x;}")
  (setq str (strcat "aa(" "'12了,地'" ")"))
  (vlax-invoke scr 'eval str)
)


这样改了下,能执行了
命令: (w5)
#<VLA-OBJECT JScriptTypeInfo 0a066360>

评分

参与人数 1D豆 +5 收起 理由
/db_自贡黄明儒_ + 5 感谢帮助!!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1182 天

连续签到: 16 天

[LV.10]以坛为家III

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2016-11-18 15:28:03 | 显示全部楼层
本帖最后由 /db_自贡黄明儒_ 于 2016-11-18 16:03 编辑

能否在批示一下,怎么在lisp看到分割后的结果?难道只能用正则
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1437 天

连续签到: 3 天

[LV.10]以坛为家III

点击这里给我发消息

已领礼包: 2917个

财富等级: 家财万贯

发表于 2016-11-19 10:30:17 | 显示全部楼层

你调用的函数,返回的结果是一个数组,lisp好像并不能处理数组,所以结果是个Object。
把retrun x;改为:return x[0];
可以返回第一个字符串:“12了”;
是否可以考虑把返回数组改为返回字符串,然后再转换为 list表?

评分

参与人数 1D豆 +1 收起 理由
/db_自贡黄明儒_ + 1 看来你很熟习VB哟

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 80 天

连续签到: 1 天

[LV.6]常住居民II

已领礼包: 65个

财富等级: 招财进宝

发表于 2016-11-19 14:16:42 | 显示全部楼层
我来看看,我来学学
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 606 天

连续签到: 5 天

[LV.9]以坛为家II

已领礼包: 18个

财富等级: 恭喜发财

发表于 2016-11-19 18:58:33 | 显示全部楼层

如果只得到一个字符串,那也没什么实际意义啊,版主。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 259 天

连续签到: 1 天

[LV.8]以坛为家I

已领礼包: 438个

财富等级: 日进斗金

发表于 2016-11-19 19:23:56 | 显示全部楼层
本帖最后由 aeo 于 2016-11-19 20:11 编辑

呵呵成了

删除了,看下面贴

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 606 天

连续签到: 5 天

[LV.9]以坛为家II

已领礼包: 18个

财富等级: 恭喜发财

发表于 2016-11-19 20:02:34 | 显示全部楼层

大写的“牛”
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 259 天

连续签到: 1 天

[LV.8]以坛为家I

已领礼包: 438个

财富等级: 日进斗金

发表于 2016-11-19 20:05:42 | 显示全部楼层
这个和上面一样 只是  分隔符提取为 参数

游客,本付费内容需要支付 10D豆 才能浏览   这是一个广告位购买


JScript 规则,如果分隔符为空 "" ,那分割每个字符:
命令: (w55 "ab,cd,ef:45" ",")
("ab" "cd" "ef:45")


命令: (w55 "ab,cd中华人民共和国,ef:45" "")
("a" "b" "," "c" "d" "中" "华" "人" "民" "共" "和" "国" "," "e" "f" ":" "4" "5")



评分

参与人数 2D豆 +10 贡献 +1 收起 理由
/db_自贡黄明儒_ + 5 很给力!经验;技术要点;资料分享奖!
newer + 5 + 1 热心帮忙奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1749 天

连续签到: 778 天

[LV.Master]伴坛终老I

已领礼包: 5258个

财富等级: 富甲天下

发表于 2016-11-19 23:25:11 | 显示全部楼层
一群牛人。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复

使用道具 举报

签到天数: 1182 天

连续签到: 16 天

[LV.10]以坛为家III

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2016-11-20 22:20:24 | 显示全部楼层

还是版主功力深厚。
我在VBE运行这个api,在win7 32位上是可行的;在64位上就不行了。查到一些资料说,64位调用这个api就是有问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 606 天

连续签到: 5 天

[LV.9]以坛为家II

已领礼包: 18个

财富等级: 恭喜发财

发表于 2016-11-20 22:28:31 | 显示全部楼层

64位是不是有64位版本的API?

点评

这个不是否很清楚  发表于 2016-11-20 22:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 259 天

连续签到: 1 天

[LV.8]以坛为家I

已领礼包: 438个

财富等级: 日进斗金

发表于 2016-11-21 13:13:15 | 显示全部楼层
网上搜到的:


64位的:
http://www.eonet.ne.jp/~gakana/tablacus/scriptcontrol_en.html
就是要注册组件,win要系统管理员,麻烦


64位里面允许32为组件,在帖子最下面。牛人多呀hehe
https://social.msdn.microsoft.co ... rol-10?forum=isvvba
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

签到天数: 1182 天

连续签到: 16 天

[LV.10]以坛为家III

已领礼包: 604个

财富等级: 财运亨通

 楼主| 发表于 2016-11-21 13:58:26 | 显示全部楼层

可否用ScriptControl切换到英文输入法?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|小黑屋|Archiver|手机版|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )  

辽公网安备 21040202000005号

GMT+8, 2018-2-18 10:54 , Processed in 0.885378 second(s), 135 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表