Re: [請教]如果要用fortran同時開10000個txt檔......

看板Programming作者 (ephesians)時間18年前 (2007/02/11 04:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串8/18 (看更多)
※ 引述《Bourbaki.bbs@bbs.ccns.ncku.edu.tw (知恩 感恩 報恩 :))》之銘言: : 有沒有什麼方式可以用簡單的指令一口氣開10000個檔啊 : 因為每個一個檔就要寫一次open 感覺很麻煩 : 而且我要開的txt檔都正好的編號順序的 從0000.txt到9999.txt : 如果要一個一個打的話 就得打一萬次啊XD : open(10000, file = "0000.txt") : open(10001, file = "0001.txt") : open(10002, file = "0002.txt") : ...... : .... : open(19998, file = "9998.txt") : open(19999, file = "9999.txt") : 打完後大概也快斃了吧 臨時K文件寫了這樣的程式,大概能動吧: (體會到原始工具的討人厭之處; 還有,洗老師,你的FORTRAN程式語言行文讀起來可真是天書啊! 還好我國中讀過文言文,大學時候學過克林貢語...開玩笑的 XD) PROGRAM TEST CHARACTER*4 F INTEGER I DO 10 I=0,9999 F = CHAR(I/1000+ICHAR('0')) F = F(1:1)//CHAR((I-I/1000*1000)/100+ICHAR('0')) F = F(1:2)//CHAR((I-I/100*100)/10+ICHAR('0')) F = F(1:3)//CHAR(I-I/10*10+ICHAR('0')) * WRITE(*,*) F//'.txt' OPEN(I,FILE=F//'.txt') 10 CONTINUE END 我用ulimit -f 10001與ulimit -n 10001設定開檔限制之後, 執行結果是: ~$ g77 test.for ~$ ./a.out open: illegal unit number apparent state: unit 999 named 0999.txt lately writing direct unformatted external IO 已經終止 (core dumped) ~$ rm 0*.txt ~$ 這個問題在這網頁如此回答: http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/Large-File-Unit-Numbers.html 修改源碼的#define MXUNIT ... 我懶得重新編譯了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.208.176
文章代碼(AID): #15pY-dn2 (Programming)
討論串 (同標題文章)
文章代碼(AID): #15pY-dn2 (Programming)