Re: [問題] Fortran的file存取問題
在各語言下都一樣。所以這句話沒意義。
> > 不過我想說這種修改檔案的功能感覺應該很重要呀
長度相同的替代用 binary 直接寫入那個位置,長度不同的替代。
長度不同的替代,在有 seek 支援的編譯器,設定到替換點,把後面的內容全部讀出來,
寫入替換內容,輸出後半段。
IVF 有 binary 跟 Formatted ,看你是哪種,就依照上面的原則去處理。
IVF 的 binary 非 fortran 200x 的規格,請依線上手冊說明存取。
==> 本文由 "㊣金大支大壽,六六大支! <journeyman@kkcity.com.tw>"
> 於 news:4Z28L8%24qP8%40bbs.kkcity.com.tw 發表
> ※ 引述《sunseeker.bbs@ptt.cc》之銘言:
> > ※ 引述《journeyman@kkcity.com.tw (㊣金大支大壽,六六大支!)》之銘言:
> > : 1)先把改變前的部份抄進去
> > : 2)寫入改變的部份
> > : 3)再把改變之後的部份抄進去
> > : FORTRAN的隨機檔使用好像是沒有標準,你可以找找看你用的compiler有沒有支援
> > : 但是一般而言,上面那樣還比較直接。
> > :
> > 恩恩 感謝
> > 我是用intel fortran compiler
> > 我也有在想說是否要先把檔案後面的資料讀入一個array
> > 然後等要取代資料的部分寫入後
> > 再把貯存在array裡的資料丟回去
> > 不過我想說這種修改檔案的功能感覺應該很重要呀
> > Fortran的write功能怎會沒有選項支援@@
> > 不過搜尋半天又沒查到相關功能Orz
> > (還是電腦資料的貯存特性只能如此作我不了解!)
> 因為一般而言open開檔案都是開成「循序檔」
> 對FORTRAN最習慣的用途(計算)而言
> 出結果只需要出一次,下次再出又是別的檔案,很自然
> 如果是每次要改的你就要改用「隨機檔」
> 剛才試了一下,FORTRAN其實是很輕鬆就支援隨機檔了
> 關鍵字是direct access file
> 所謂隨機檔在寫入的時候指定記錄編號,就可以寫入檔案中任意位置
> 每一筆記錄必須要等長(當然!否則怎麼知道第幾筆記錄放在哪裡)
> 有多長則是在open的時候指定,例如這樣
> open (unit=1, name="rec.lst", access="direct", recl=20,
> C form="formatted")
> 而讀寫則是
> read (unit=1, rec=i, fmt="(I9,X,I10)") m, n
> write(unit=1, rec=i, fmt="(I9,X,I10)") m, 3**m
> 但是這用起來也並不是多麼美妙
> 每一筆記錄要等長,第一個問題就是每筆後面不會自動換行,這你用了就知道了
> 因為這種檔案格式就是存資料用,不是打算給人看的
> 第二點,如果是一大堆固定格式的資料,例如對應不同時間的數據
> 你找到其中某一筆,然後改寫整筆,這還算簡單
> 如果是一篇文章,要改寫其中一兩段,甚至是一兩句
> 那我看你開個陣列來存,在陣列裡面改好,再開個新檔寫回去,刪掉舊檔
> 這樣還比較簡單
> 或者就像我講的,同時開兩個檔案,一讀一寫,
> 分出新舊部份,沒有修改的部份直接抄,到了有改的部份再寫進去
> 當然可以用一些比較複雜的方法
> 比如說,設recl=1
> 如果你有興趣可以試試看,我是沒有試過…
>
--
風禹科技驗證有限公司 ASP.NET Web News Reader 0.2.7 UTF-8 Beta
網站地圖 http://tlcheng.twbbs.org/wwwmap.htm
流域防洪/區域水資源/徐昇網/玫瑰圖/語音通訊 文章與程式
Basic/Fortran/Windows API/.Net/輔助說明檔 原始碼、文章與討論
微軟程式設計、系統管理使用新技術論壇討論區,網友回覆後即時簡訊、電子郵件通知:
MSDN: http://forums.microsoft.com/msdn-cht/default.aspx?siteid=14
TechNet: http://forums.microsoft.com/technet-cht/default.aspx?siteid=23
--
ASPNET News Reader http://tlcheng.twbbs.org/News/Reader.aspx
RSS 2.0 http://tlcheng.twbbs.org/News/rss2.aspx?Action=List&Newsgroup=tw.bbs.comp.language
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章