明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1336|回复: 3

字符串提取问题,请帮忙

[复制链接]
发表于 2006-2-9 09:16:00 | 显示全部楼层 |阅读模式
    请问如 "河南省人民政府|-45.26|0|45.36|0|0|3.00|3.00|7.01“字符串,其中”|“不要,要想取得里面的每组字符,该如何弄? 谢谢
发表于 2006-2-9 09:39:00 | 显示全部楼层

供参考:

(SETQ GG"ASDF|ASDFASDF|AFSDFASDFSADF|")
(SETQ XX "" I 1)
(REPEAT (STRLEN GG);(> (STRLEN GG) I)
  (IF (NOT(EQ (SETQ GGA(SUBSTR GG I 1))"|"))
    (SETQ XX(STRCAT XX GGA)))
  (SETQ I (1+ I)))

发表于 2006-2-9 10:16:00 | 显示全部楼层

参考一下这个:

(defun c:test ()
  (setq A "12.3/33/45/67/9")
  (setq A (strcat A "/"))
  (setq AL (+ (strlen A) 1))
  (setq N 1 i 1)
  (setq S "")
  (while (not (= N AL))
    (if (= (substr A N 1) "/")
      (progn
      (set (read (strcat "N" (rtos i))) S)
      (setq i (1+ i) S "")
      )
      (setq S (strcat S (substr A N 1)))
    )
    (setq N (1+ N))
   
  )
  (print n1)
  (print n2)
  (print n3)
  (print n4)
  (princ)
)

 楼主| 发表于 2006-2-9 10:29:00 | 显示全部楼层
本帖最后由 作者 于 2006-2-10 22:24:17 编辑

(setq wbzc "五岳庙林场北|cshihd|cromand|6.86|0.00|0|0|0|6.00|6.00|0.50|1.00")
(setq wbzc (strcat "|" wbzc "|"))
(while (not (eq wbzc (vl-string-subst " " "|" wbzc)))
  (setq numq(vl-string-search "|" wbzc))
  (setq wbzc(vl-string-subst " " "|" wbzc))
  (setq numh(vl-string-search "|" wbzc))
  (if numh (setq wzjd (substr wbzc (+ numq 2) (- numh numq 1))))
  (prin1 wzjd)
)
我用这个方法处理觉得复杂,且不能把结果赋给不同变量,有没有更简单的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-22 05:24 , Processed in 0.158722 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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