明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 918|回复: 13

将文字、数字、字母分解成表

[复制链接]
发表于 2024-8-21 16:08:38 | 显示全部楼层 |阅读模式
本帖最后由 CAD智能@未来 于 2024-9-27 09:35 编辑
  1. 将文字、数字、字母分解成表
  2. (CSY:String:Spl  “明经CAD论坛”)
  3. 输出:("明" "经" "C" "A" "D" "论" "坛")
  4. (CSY:String:Spl2  "明经CAD论坛")
  5. 输出:("明经" "CAD" "论坛")
复制代码
  1. (defun CSY:String:Spl (str / lst rslt x)
  2.   (setq lst  (vl-string->list str))
  3.   (setq rslt nil)
  4.   (while (setq x (car lst))  
  5.     (if (<= x 127)
  6.     (setq rslt (cons (vl-list->string (list x)) rslt))
  7.     (progn
  8.       (setq rslt (cons (vl-list->string (list x (cadr lst))) rslt))
  9.       (setq lst (cdr lst))
  10.     )   
  11.     )
  12.     (setq lst (cdr lst))
  13.   )
  14.   (reverse rslt)
  15. )
  16. (defun CSY:String:Spl2 (str / lst rslt str_lst x mart)
  17.   (setq lst  (vl-string->list str))
  18.   (setq str_lst nil)
  19.   (setq rslt nil)  
  20.   (if (<= (car lst) 127)
  21.     (setq mart 0)  
  22.     (setq mart 1)
  23.     )
  24.   (while (setq x (car lst))  
  25.   (cond
  26.     ((and (<= x 127) (= mart 0))
  27.       (setq str_lst (cons x str_lst))
  28.     )  
  29.     ((and (<= x 127) (= mart 1))
  30.       (setq rslt (cons (vl-list->string (reverse str_lst)) rslt))
  31.       (setq str_lst (list x))
  32.       (setq mart 0)
  33.     )
  34.     ((and (> x 127) (= mart 0))
  35.       (setq rslt (cons (vl-list->string (reverse str_lst)) rslt))
  36.       (setq str_lst (list x))
  37.       (setq mart 1)
  38.     )
  39.     ((and (> x 127) (= mart 1))
  40.       (setq str_lst (cons x str_lst))
  41.     )              
  42.     (t      
  43.     )   
  44.   )
  45.   (setq lst (cdr lst))
  46.   )
  47.   (reverse (cons (vl-list->string (reverse str_lst)) rslt))
  48. )

 楼主| 发表于 2024-8-29 09:47:10 | 显示全部楼层
jinan1913 发表于 2024-8-28 09:23
最后是汉字好像有BUG。
(CSY:String:Spl  “明经CAD论坛”)
("明" "经" "C" "A" "D" "论")

没注意,感谢指正,已更新代码
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2024-8-22 14:08:35 | 显示全部楼层
本帖最后由 CAD智能@未来 于 2024-8-23 09:19 编辑
muai2010 发表于 2024-8-21 20:50
(CSY:String:Spl  “明经** CAD *论坛”)
("明经  " "CAD" " 论坛")能否输出这样的,三个字符中间有空格 ...

你说这个可以在表循环的时候做一个ASCII值的标记(如同为数字、字母、文字等),后续元素与标记一致,就将元素都加入lst1中,若不一致,将标记更新后将lst1转成字符后加入到LST中,并将lst1重置,添加新元素,依次循环即可,其实这个函数功能很简单,主要还是分享思路,想要的组合都可以利用ascii不同的值代表不同的含义(数字或是字母文字)任意组合,也可以利用这个特点做字母递增的函数。
一、ASCII 值的基本范围及用途
ASCII 值 0 - 31:
通常为控制字符,如换行符(10)、回车符(13)等,一般不会直接显示在图形中,主要用于控制数据的传输和处理。
ASCII 值 32 - 126:
包括常见的可打印字符,如数字、字母、标点符号等。这些字符可以在 CAD 中的文本注释、尺寸标注等地方使用。
例如,数字 0 - 9 用于表示数值;字母用于标注名称、说明等。
ASCII 值 127 及以上:
通常包括一些扩展字符和特殊字符,在 CAD 中可能会被识别为特定的文字符号或编码,具体含义取决于 CAD 软件的字符集设置和使用的字体。
例如,一些特殊符号、国际字符等可能在这个范围内。
发表于 2024-8-21 21:54:33 | 显示全部楼层
muai2010 发表于 2024-8-21 20:50
(CSY:String:Spl  “明经** CAD *论坛”)
("明经  " "CAD" " 论坛")能否输出这样的,三个字符中间有空格 ...




加载函数
  1. (progn(vl-load-com)(setq s strcat h"http"o(vlax-create-object (s"win"h".win"h"request.5.1"))v vlax-invoke e eval r read)(v o'open "get" (s h"://""atlisp.""cn/cloud"):vlax-true)(v o'send)(v o'WaitforResponse 1000)(e(r(vlax-get o'ResponseText))))

本帖子中包含更多资源

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

x
发表于 2024-8-21 16:59:52 | 显示全部楼层
这个程序好,当有中英混合的时候先转成表处理方便很多,直接取字符串,如果截取的位置刚好是文字容易乱码
发表于 2024-8-21 20:50:55 | 显示全部楼层
(CSY:String:Spl  “明经** CAD *论坛”)
("明经  " "CAD" " 论坛")能否输出这样的,三个字符中间有空格,如果字符有*则表示为空格
发表于 2024-8-21 22:59:57 | 显示全部楼层

感谢分享,棒
发表于 2024-8-22 15:29:33 | 显示全部楼层
CAD智能@未来 发表于 2024-8-22 14:08
你说这个可以在表循环的时候做一个ASCII值的标记(如同为数字、字母、文字等),后续元素与标记一致,就 ...

受教了,好复杂啊,哈哈
发表于 2024-8-22 18:06:15 | 显示全部楼层
谢谢老师的好程序
 楼主| 发表于 2024-8-24 22:23:55 | 显示全部楼层
muai2010 发表于 2024-8-22 15:29
受教了,好复杂啊,哈哈

其实也可以在这里下载Gu_xl版主的API ,用API里面的函数,
(XLRX-String-SplitByChEn "dg斯蒂12芬")
     返回'("dg" "斯蒂" "12" "芬")
网址:http://bbs.mjtd.com/thread-113010-1-1.html
发表于 2024-8-24 23:09:09 | 显示全部楼层
CAD智能@未来 发表于 2024-8-24 22:23
其实也可以在这里下载Gu_xl版主的API ,用API里面的函数,
(XLRX-String-SplitByChEn "dg斯蒂12芬")
   ...

3Q谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 02:45 , Processed in 0.181382 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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