[问题] 字串输出入问题

楼主: terrylove12 (空洞)   2017-04-19 19:24:19
最近想用FORTRAN来写AUTOCAD的脚本产生程式
用来展座标点
读入的档案是空白分隔的档案
内容排序是 点号 N E Z
==读入档案内容
P1 1234567.123 123456.123 12.356
P10 1231231.123 123123.456 -1.444
P100 1254444.123 144155.333 100.567
==
然后我想输出的档案型式大概是
point_n,e,z (底线为空白字符)
text_n,e_5_0_点号
==输出档内容 (取第一笔资料来表示)
point 1234567.123,123456.123,12.356
text 1234567.123,123456.123 5 0 P1
==
不过目前遇到的问题就出现在字串宣告上
因为点号的长度是不固定的
如果不宣告字串长度 读入的就只有字串的第一个字
如果宣告点号字串 LEN=10
的确可以读入所有点号
但是在输出的时候就会变成后面会补满空白字符到10个字
例如
text 1234567.123,123456.123 5 0 P1________
text 1231231.123,123123.456 5 0 P10_______
一旦多出空白字符 AUTOCAD就无法吃下脚本指令
所以想请问大家这个问题要怎么解决
另外想问用自由格式读入REAL
是不是超过11码就读不到小数位呢
因为我用自由格式
real :: n,e,z
cha....(len=10) :: pt
READ(FILE,*) pt,n,e,z
然后write(*,*) n
小数位会变成.000
烦请大家提供想法了
感谢
编译器cvf6.6
作者: blc (Anemos)   2017-04-19 19:54:00
trim() ?
楼主: terrylove12 (空洞)   2017-04-19 20:17:00
感谢版主 谢谢 我真的是学艺不精
作者: blc (Anemos)   2017-04-19 20:32:00
以前我也不知道,还自己写…然后n小数位变.000大概是浮点数精确度的关系,不过不确定。
作者: george1224 ( )   2017-04-20 07:48:00
real精度改成double看看呢?
作者: max533 (向阳花)   2017-04-24 13:35:00
应该如同楼上G大所说是单精度和双精度的问题,基本上小数点后11位就是双精度浮点数,试试看直接在宣告处宣告real*8就应该可读到小数点

Links booklink

Contact Us: admin [ a t ] ucptt.com