看板 Fortran 關於我們 聯絡資訊
最近想用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 -- Sent from my fx-82SX -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.181.241 ※ 文章網址: https://www.ptt.cc/bbs/Fortran/M.1492601063.A.932.html ※ 編輯: terrylove12 (114.37.181.241), 04/19/2017 19:26:23
blc: trim() ? 04/19 19:54
terrylove12: 感謝版主 謝謝 我真的是學藝不精 04/19 20:17
blc: 以前我也不知道,還自己寫… 04/19 20:32
blc: 然後n小數位變.000大概是浮點數精確度的關係,不過不確定。 04/19 20:35
george1224: real精度改成double看看呢? 04/20 07:48
max533: 應該如同樓上G大所說是單精度和雙精度的問題,基本上小數 04/24 13:35
max533: 點後11位就是雙精度浮點數,試試看直接在宣告處宣告real*8 04/24 13:35
max533: 就應該可讀到小數點 04/24 13:35