嗯,不是真的Eldon
请注意,示例中没有空格:
5001100926.946000096.8278000221.264000NL
你怎么能确定第一个“,”在26.946之前
50011009,26.9460000,96.8278000221.264000,荷兰
是什么阻止你把第一个逗号放在9之前?
是的,OP确实显示了一个输出,现在我们可以说逗号在2之前,我们现在可以确定,因为显示了输出。但这将假设Y坐标总是在小数之前2个数字。而且IMO不是很好的编程
是的,我可以用exag来证明一点 如果@eldon正确,请尝试:
(setq stringTemp "5001100926.946000096.8278000221.264000NL")
(setq stringNew (strcat (substr stringTemp1 ","
(substr stringTemp9 10) ","
(substr stringTemp 19 10) ","
(substr stringTemp 29 10) ","
(substr stringTemp 39)))
但同样,这只有在数据结构不变的情况下才有效!
这正是我所要说的。
举个例子。
输出
1003,6.2210000,96.1930000267.875600,ND
为什么不呢?
100,36.22100009,6.193000026,7.875600,ND
关键是,你怎么知道值的开始和结束?
100926.946000096.8278000221.264000NL
10036.22100096.1930000267.875600ND
米尔恰,
我理解。事实上,在某些行中可能有一个大/小小数位数。考虑以下序列,即第一行,它验证定位点是否可以向右移动,这取决于每个坐标的单位(单位、十、百)。在这些情况下,通过消除同一坐标中的小数位来抵消字符的差异。
在这些情况下,除了能够定义逗号分隔符的常规位置外,我还必须小心处理这些行,最终将它们分开处理。我看不到其他解决问题的方法。
09F15004128012.1640000103.357600113.245600OD
09F1500412818.6970000100.978600142.721400RD
09F1500412824.8090000001.967000112.053400RD
09F1500412834.72000000101.520800112.992800RD
09F1500412843.9470000102.08440067.2318000RD
09F1500412851.6780000103.435000351.147600RD
09F1500412861.76000000103.541200226.526200RD
09F1500412878.8120000100.714400187.285600RD 而日常生活又怎么知道跳过这样的台词呢?!?
在这种情况下,真正让我困惑的是,您的设备导出的数据打算稍后以电子格式使用;其他将其作为文件的目的是什么?因此,我认为您可能错过了上述机器的设置。你仔细看过他的手册了吗?
从正确填充源数据开始
每行的结构如下:见附图:
米尔恰,
事实是,我们现在没有读取程序数据,只能访问来自紧凑闪存卡的源文件。然后我需要处理它们,然后通过autocad导入,也需要使用autolisp例程。
不是这个问题,设备允许导出用逗号分隔的文件。
虽然没有软件,但我必须解决一些使用此功能的工作。 如果您绝对确定数据位于等宽列上,那么请尝试调整我给您的示例。但是,请不要忘记在处理后对每个结果进行双重检查。
米尔恰,
是的,样本结果。
不幸的是,我没有足够的知识将此代码集成到例程中,以便从读取文件的过程中逐行执行。因此我请求帮助。
页:
1
[2]