明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1539|回复: 4

[提问] 求教关于在字母、数字混合文本中提取数字的问题

[复制链接]
发表于 2015-12-3 03:40:45 | 显示全部楼层 |阅读模式
本帖最后由 麻吉888888888 于 2015-12-4 01:35 编辑

已知套内面积,需要求建筑面积(建筑面积=套内面积/容积率)。
编了个小程序,发现只能对建筑面积的整数部分有效。经多次试验,应该是在提取数字上出了问题,百思不得其解。求教大侠,代码是哪儿错了,该怎么改?

处理前文字:120.33m^u2^u
输入容积率:0.3
处理后文字:401.10m^u2^u

文字为多行文本。


不好意思,新人不懂提问规矩
  1. (defun c:ttt(/ ss add en txt enl num0)
  2.   (while(not (setq add (getreal "\n容积率:"))))
  3.   (princ "\n选择文字:")
  4.   (while (setq ss (ssget '((0 . "TEXT,mtext")(1 . "*m^u2^u*"))));;只有含有m^u2^u的才能被选


  5.   
  6.   (repeat (setq n (sslength ss))
  7.     (setq en (ssname ss (setq n (1- n))))
  8.     (setq txt (cdr (assoc 1 (setq enl (entget en)))));;可能问题就出在这里
  9.     (setq num0 (atoi txt)  num2 (atoi txt2)
  10.           txt (substr txt (1- (strlen (rtos num0))));;1-仅针对于m^u2^u之前为两位小数的情况
  11.           num2 (/ num2 add)
  12.           txt (strcat (rtos num2 2 2) txt);;第一个2表示计算结果以小数表示,第二个2表示保留2


  13.           enl (subst (cons 1 txt) (assoc 1 enl) enl)
  14.           )
  15.     (entmod enl)
  16.   )
  17.     )
  18.   )
发表于 2015-12-3 09:22:45 | 显示全部楼层
...
(setq num0 (atoi txt)  num2 (atoi txt2)
...
txt2没见有定义啊
发表于 2015-12-3 12:28:39 | 显示全部楼层
整个过程未见对字符串进行数字提取,也没看见示例字符串,最好弄个示例字符串,以及希望提取哪些内容
 楼主| 发表于 2015-12-4 01:35:06 | 显示全部楼层
处理前文字:120.33m^u2^u
输入容积率:0.3
处理后文字:401.10m^u2^u

文字为多行文本。


不好意思,新人不懂提问规矩

发表于 2015-12-4 08:27:29 | 显示全部楼层
  1. (defun c:ttt(/ ss add en txt enl)
  2.   (while(not (setq add (getreal "\n容积率: "))))
  3.   (princ "\n选择文字: ")
  4.   (while (setq ss (ssget '((0 . "*TEXT")(1 . "*m^u2^u*"))));;只有含有m^u2^u的才能被选中
  5.    (repeat (setq n (sslength ss))
  6.     (setq en (ssname ss (setq n (1- n))))
  7.     (setq txt (cdr (assoc 1 (setq enl (entget en)))))
  8.     (setq txt (strcat (rtos (/ (atof txt) add) 2 2) "m^u2^u"))
  9.     (entmod (subst (cons 1 txt) (assoc 1 enl) enl))
  10.    )
  11.   )
  12.   (princ)
  13. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-21 01:22 , Processed in 0.161414 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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