找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1979|回复: 11

[求助] 有没有一个这样的处理字符串表的函数

[复制链接]

已领礼包: 19个

财富等级: 恭喜发财

发表于 2016-10-25 13:47:53 | 显示全部楼层 |阅读模式

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

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

×
就是有一系列 字符串表,比如:
(
   ("123" "34" "3")
   ("1"  "1" "1")
   ("12" "12345" "1")
)

我把他们写到文件里面,列让他们对齐
123     34           3
1         1             1
12       12345     1

列的最大空白从最长的数后都相等,前面字数小于列最大字符数的补空白


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

已领礼包: 2476个

财富等级: 金玉满堂

发表于 2016-10-25 14:24:50 | 显示全部楼层
\t 加个制表符就行了...

评分

参与人数 1D豆 +2 收起 理由
Lisphk + 2 热心帮忙奖!

查看全部评分

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2016-10-25 14:35:50 | 显示全部楼层

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

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2016-10-25 15:02:34 | 显示全部楼层
可以先格式化
  1. (while (< (strlen a) 40)
  2.       (setq a (strcat a " "))
  3.     )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2016-10-25 15:22:45 | 显示全部楼层
这个问题应该分两步,
1、算出每列的字符串最大的长度
2、最大长度+列的空白字符长度得到这列的总长度、按照老黄的代码把每列的字符串都格式化到总长
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2016-10-25 15:34:00 | 显示全部楼层
还是用\t(制表符)好一些,虽然加空格可以控制位置,但每行是一个完整字串,得不偿失。
制表符在一般的文本浏览工具中默认是8个,少数的的软件可以自主设定制表符的位数,但多数的都不行。
字符长度大于制表符位数时,看上去后面的字串会向后再退一个制表位,显示的不太舒服,但实际上仍旧是对齐的,使用Excel这类软件打开就可以看出,并且不影响使用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2016-10-25 15:40:21 | 显示全部楼层

谢谢LJ和各位大师指点,我之所以想不同\t, 是因为有时候并不是要写大文件里面,比如:我要把文字画到CAD里面,每列都对齐,列的间距也能控制,这样制表符就做不到了吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2016-10-25 15:47:18 | 显示全部楼层

你难道先读到文本文件中,再复制粘贴到cad中?
在cad中写文字应该是直接从表中读取文本,然后根据字符串在表中的“行列”位置算出插入点,再插入文字不是么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2016-10-25 15:50:30 | 显示全部楼层
  1. (defun format-str (ostr len /)
  2.   (strcat
  3.     ostr
  4.     (substr
  5.       "                                                                                        "
  6.       1
  7.       (- len (strlen ostr))
  8.     )
  9.   )
  10. )


评分

参与人数 1D豆 +5 收起 理由
XDSoft + 5 热心帮忙奖!

查看全部评分

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

使用道具 举报

已领礼包: 19个

财富等级: 恭喜发财

 楼主| 发表于 2016-10-25 16:19:23 | 显示全部楼层

有两个准备,一个是在CAD直接画,把表里面每行每列的字符串格式化好后,把一行的字符串STRCAT起来,写一行文件,其他行同样处理,这样不就屏幕上列都对齐了嘛。

还有一个就是打印到CAD的文本屏幕,一些计算信息,让打印的更漂亮些,不一定非要制表符控制。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2016-10-25 16:40:30 | 显示全部楼层
一般的数据信息8位的制表符是够的,对于有不够的的情况,空格填充是个办法,但设置太多一行写不了几个数字,太少又拥挤,这种情况可以自己写一个函数,参数是列数和列间距,参数可以用表来解决列数变化的问题,例如:(wt '(列数 间距1 间距2 ...)),这样可以根据自己的要求来设置位置。
在cad中直接画还是建议使用单个文本,可以根据字符串的长度来计算间距。
不建议在文本屏幕上直接显示,刷新很快,不便于查看,如果需要可以写入文本文件,用第三方软件阅读。
另:cad本身的对话框显示文本是可以设定制表位长度的,不过使用起来太过麻烦。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-22 05:20 , Processed in 0.207833 second(s), 55 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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