作者ephesians (ephesians)
看板Programming
标题Re: [请教]如果要用fortran同时开10000个txt档......
时间Sun Feb 11 04:48:38 2007
※ 引述《[email protected] (知恩 感恩 报恩 :))》之铭言:
: 有没有什麽方式可以用简单的指令一口气开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