求助:Fortran 程序中要打开一个存在的文件,那么文件的路径有什么要求?

求助:Fortran 程序中要打开一个存在的文件,那么文件的路径有什么要求?,第1张

unit = 10 是自选的,用以区别不同的文件。

如果你的圆陪蚂程序需要读写多个文件,那么选择不同的通道号(比如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 空语句也不会造成太大的时间裤告禅开销。

对于较大的数据,我建议使用二进制进行存储。快速,高效,且误差小。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12291649.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存