自贡黄明儒 发表于 2022-5-20 07:22:38

lisp可直接利用的vbs函数

本帖最后由 自贡黄明儒 于 2022-5-23 09:26 编辑

0 出道的时候,lisp函数并不多,那时候叫alisp。

1 2000开始,出现了以VL- vlax- vla-开头的函数,一下函数多得数不清。
特别是vlax-get-or-create-object函数的加入,使得lisp基本上可直接利用VBS函数;
excel下函数也很多,如果你安装excel,好多函数也是可以直接利用的。

2 highflybird大师对于dynwrap.dll的发现,使得lisp可直接Win的API,从而变得无所不能。可惜我不懂API,使用64位以来,从没有注册成功过。

下面是我整理的lisp可直接利用VBS函数,希望你喜欢。
示例:
(HH:Cos "cos" 0.5)=>0.877583 ;余弦函数,同(cos 0.52);
(HH:Cos "acos" 0.877583)=>0.499999;反余弦函数

;;------------ceil()是天花板,即向上取整。floor是地板,向下取整。round是四舍五入
(HH:Cos "ceil" 1.5)=>2;
(HH:Cos "floor" "1.5")=>1;
**** Hidden Message *****

自从我直接利用了VBS函数,腰也不酸了腿也不疼了,一口气工具箱组装完成了。


明总加精了,大家也感性趣,我把《excel可利用函数.LSP》也给大家

;;通用式
;;示1 (ExcelFunction (list 'Choose 2 "一月" "二月" "三月"));==>"二月"nth
;;示2 (ExcelFunction (list 'Dec2Bin 9))=>"1001";(ExcelFunction (list 'Dec2Bin 9 4))=>"1001"
;;----Bin2Dec Bin2Hex Bin2Oct Dec2Bin Dec2Hex Dec2Oct Hex2Bin Hex2Dec Hex2Dec Oct2Bin Oct2Dec Oct2Hex
;;示3 (ExcelFunction (list 'Acos 0.5))=>1.0472(60度)反余弦; (ExcelFunction (list 'Atan2 1 1))=>0.785(45度)
;;---ABS ACOS ACOSH ASIN ASINH ATAN ATAN2 COS COSH DEGREES EVEN EXP FACT FACTDOUBLE FLOOR GCD INT LCM LN LOG LOG10...
;;示4 (ExcelFunction (list 'Round 3.21 1))=>3.2
;;---Round,而 RoundDown RoundUp Ceiling Ceiling_Precise Floor Floor_Precise
;;示5 (ExcelFunction (list 'Text 123 "正;负;零"))=>"正";(ExcelFunction (list 'Text 123 "A;B;C"))=>"A"
;;;(ExcelFunction (list 'Text 12.3 "0000"))=>"0123"格式化字串,取整后不足前面补0
;;;(ExcelFunction (list 'Text 12.3 "0"))=>"12" 取整后前加空格
;;;(ExcelFunction (list 'Text "2010/5/1 9:8:5" "YYYY年MM月DD日"))=>"2010年05月01日"
;;;y:一年中的第几天(1-366)
;;;yy:两位数的年份(00-99)
;;;yyy:上面的 yy 与 y 结合在一起
;;;yyyy:四位数的年份(0100-9999)
;;;d:一个月中的第几天(1-31)
;;;dd:与 d 相同,但不足两位时补足 0
;;;ddd:三个英文字母表示的星期几
;;;dddd:英文表示的星期几
;;;ddddd:显示标准日期
;;;dddddd:长日期
;;;(ExcelFunction (list 'Text "2010-5-1 9:8:5" "ddd"))=>"Sat"
;;;(ExcelFunction (list 'Text "ab" "@@"))=>"abab"
;;;(ExcelFunction (list 'Text "ab" "@@X"))=>"ababX"
;;;(ExcelFunction (list 'Text "ab" "!@@@@"))=>"@ababab"
;;;(ExcelFunction (list 'Text "2010-1-1 9:8:5" "mmm"))=>"Jan"
;;;m:月份数(当用于时间时,也可以表时为分钟)
;;;mm:当小于10时带前导0的月数(当用于时间时,也可以表示为两位数的分钟数)
;;;mmm:三个英文字母表示的月份数
;;;mmmm:英文表示的月份数
;;(ExcelFunction (list 'Text 123.35 ""))=>"壹佰贰拾叁.叁伍"
;;(ExcelFunction (list 'Text 23 "0角0分"))=>"贰角叁分"
;;(ExcelFunction (list 'Text 23 "0000"))=>"零零贰叁"
;;(ExcelFunction (list 'Text 1.23 "0%"))=> "123%"
;;(ExcelFunction (list 'Text 1.30 "hh:mm:ss"))=> "07:12:00"
;;;其它功能请核查VBA format Text
;;示例6 CONVERT(number, from_unit, to_unit)
;;;克 "g"
;;;斯勒格 "sg"
;;;磅(常衡制) "lbm"
;;;U(原子质量单位) "u"
;;;盎司(常衡制) "ozm"
;;;距离 From_unit 或 to_unit
;;;米 "m"
;;;法定英里 "mi"
;;;海里 "Nmi"
;;;英寸 "in"
;;;英尺 "ft"
;;;码 "yd"
;;;埃 "ang"
;;;宏 "pica"
;;;时间 From_unit 或 to_unit
;;;年 "yr"
;;;日 "day"
;;;小时 "hr"
;;;分钟 "mn"
;;;秒 "sec"
;;;压强 From_unit 或 to_unit
;;;帕斯卡 "Pa"(或 "p")
;;;大气压 "atm"(或 "at")
;;;毫米汞柱 "mmHg"
;;;力 From_unit 或 to_unit
;;;牛顿 "N"
;;;达因 "dyn"(或 "dy")
;;;磅力 "lbf"
;;;能量 From_unit 或 to_unit
;;;焦耳 "J"
;;;尔格 "e"
;;;热力学卡 "c"
;;;IT 卡 "cal"
;;;电子伏 "eV"(或 "ev")
;;;马力-小时 "HPh"(或 "hh")
;;;瓦特-小时 "Wh"(或 "wh")
;;;英尺磅 "flb"
;;;BTU "BTU"(或 "btu")
;;;乘幂 From_unit 或 to_unit
;;;马力 "HP"(或 "h")
;;;瓦特 "W"(或 "w")
;;;磁 From_unit 或 to_unit
;;;特斯拉 "T"
;;;高斯 "ga"
;;;温度 From_unit 或 to_unit
;;;摄氏度 "C"(或 "cel")
;;;华氏度 "F"(或 "fah")
;;;开氏温标 "K"(或 "kel")
;;;液体度量 From_unit 或 to_unit
;;;茶匙 "tsp"
;;;汤匙 "tbs"
;;;液量盎司 "oz"
;;;杯 "cup"
;;;U.S. 品脱 "pt"(或 "us_pt")
;;;U.K. 品脱 "uk_pt"
;;;夸脱 "qt"
;;;加仑 "gal"
;;;升 "l"(或 "lt")
;;(ExcelFunction (list 'CONVERT 1 "in" "mm"))=>25.4
;;(ExcelFunction (list 'CONVERT 1 "mn" "sec"))=>60.0
;;示例6 (ExcelFunction (list 'CLEAN " m n \t\nm"))=>" m n m"删除文本中不能打印的字符
;;示例7 (ExcelFunction (list 'Complex 2 3))=>"2+3i" 转换为复数
;;--- (ExcelFunction (list 'IMSUB "2+3i" "3+2i"))=>"-1+i"返回两个复数的差
;;---IMCONJUGATE IMCOS IMDIV IMEXP IMLN IMLOG10 IMLOG2 IMPOWER IMPRODUCT IMREAL IMSIN IMSQRT IMSUB IMSUM
;;示例8 (ExcelFunction (list 'ISNUMBER "3"))=>0 0表示真
;;---ISEVEN偶数 ISNONTEXT文本 ISNUMBER数字 ISODD奇数 ISTEXT文本
;;(ExcelFunction (list 'DEGREES 3.14))

edata 发表于 2022-5-20 13:44:20

dynwrap 注册需要管理员权限才能注册,64位要用64位的dll,不能使用32位的dll。



vectra 发表于 2022-5-20 08:53:58

都是ActiveX方式交互吧,这个是微软的技术,自动桌子紧跟微软的步伐是比较明显的。
比如06还是07版开始转.net

gaics 发表于 2022-5-20 07:26:20

新鲜出炉!!

guosheyang 发表于 2022-5-20 07:32:21

感谢黄大师共享资料!

xj6019 发表于 2022-5-20 07:49:05

这是黄大师的520福利呀,顶顶支持!!!

xyp1964 发表于 2022-5-20 07:51:34

总结提炼得非常好

机械工程师 发表于 2022-5-20 07:51:40

进来瞧瞧。

liunian0524 发表于 2022-5-20 08:02:47

看看黄大师的新作

at1636 发表于 2022-5-20 08:03:23

感谢大佬无私奉献!

524917100 发表于 2022-5-20 08:06:11

大神还是大神,永远跟不上脚步

渠辉 发表于 2022-5-20 08:08:13

感谢黄大师共享资料!
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: lisp可直接利用的vbs函数