如果你的圆陪蚂程序需要读写多个文件,那么选择不同的通道号(比如10,11,12,乱嫌55)来区别他们。
testone.txt 文件放在工程所在目录,或exe所在目录。这要看你使用的什么编译器和编译环境。不同的编译环境,在你点击运行按钮后,可能会设置不同的文橘埋件夹为当前活动路径。
楼主犯了很多错培大。1.Fortran
是编译型的语言,是永远无法获得本
for
所在的路径的。实际上,丛旁一些大型程序,是由若干(几个,几十个,甚至成百上千个)
for
源代码文件共同书写完成。他们可以在同一个文件夹,也可以在不同的文件夹。
2.源代码文件一旦编译成
exe,就永远无法获得原来的
exe
在哪儿了。它此时已经完全与
for
源代码文件没有关系了。就好像:我用拼音打了几个字,发送给你了。你永远无法知道我是用QQ拼音打的,还是谷歌拼音,还是百度拼音输入法。
3.你可以获得本
exe
所在的文件夹,或者当前活动路径(CurrentDirectory)。大多数时候,你用IDE编译的话,这三个是在同一个文件夹的。(但不绝对,正如我之前说的那样,多个for共同书写同一个代码,for可以在很多个文件夹下)
实际这几个的关系是这样的:
a.大多数人把工程文件和for文件放在同一个文件夹。
b.大多数编译器会自动把生成的exe放在工程文件夹(或debug文件夹或release文件夹)
c.通过windows资源管理器或编译器运行exe,则其CurrentDirectory默认为exe所在文件夹
于是,你就把
CurrentDirectory
当做了
for
所在的文件夹。实际上,上述的过程每个环节都可以变动。
4.当前活动路径与
exe
所在路径不同。比如你在桌面上随便找一个快捷方式,右键属性,你会看到,目标,渗中橡起始位置,是不同的。目标决定一个exe所在的路径,而起始位置,windows会当做当前活动路径。
而如果通过windows资源管理器直接运行exe,则exe所在路径windows就会自动设置为本历程的当前活动路径。
5.程序可以通过多种方式改变当前活动路径,而同一个
exe,还可以有多个历程。每个历程都可以自由改变自己的活动路径。(就好像你安装了一个QQ,却可以登陆多个号码一样,每个号码的QQ是一个历程,每个里程的CurrentDirectory可以不同,而且还不固定,QQ可以随时改变它)
6.
CHARACTER
lpBuffer(nBufferLength)
是一个数组,每个字符串长度是1。如果你要定义一个
nBufferLength
的字符串。请这样定义:
Character(
Len
=
nBufferLength
)
lpBuffer
7.GetCurrentDirectory
用于获得当前活动路径。而
GetModuleFilename,可以获得当前
exe
所在的路径。
8.不管是
GetCurrentDirectory
还是
GetModuleFilename。它们都是
windows
的功能,而不是
Fortran。所以具体使用方法,要看你的编译器说明书。
9.回到最终,你无法获得
for
文件所在的路径。(甚至它根本不是唯一的)
如果是二进制文件,可以胡尘考虑用直接读取方式。即 Open 时指定 access = 'direct'
如果是文本文件,且每一行的长度都是一样的。也可以使用上述方式。友档
如果是文本文件,但每一行的长度不同。那么 read 空语句也不会造成太大的时间裤告禅开销。
对于较大的数据,我建议使用二进制进行存储。快速,高效,且误差小。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)