Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用gfortran打开文件夹_Fortran_Gfortran - Fatal编程技术网

使用gfortran打开文件夹

使用gfortran打开文件夹,fortran,gfortran,Fortran,Gfortran,这是我的代码: Program Write_in_folder Implicit none Integer::Num_Ber Integer,parameter::Le=367 Character(Le)::Output Character(Le),parameter::fmt_1='("Result\Output_",i0,".txt")' Character(Le),parameter::fmt_2='(2x,i0)' Character(Le),parameter::fmt_3='mk

这是我的代码:

Program Write_in_folder

Implicit none

Integer::Num_Ber
Integer,parameter::Le=367
Character(Le)::Output
Character(Le),parameter::fmt_1='("Result\Output_",i0,".txt")'
Character(Le),parameter::fmt_2='(2x,i0)'
Character(Le),parameter::fmt_3='mkdir Result'

Write(*,*)"Enter the number:"
Read(*,*)Num_Ber

Write(Output,trim(adjustl(fmt_1)))Num_Ber

Call execute_command_line(trim(adjustl(fmt_3)))

Open(Unit=1,File=trim(adjustl(Output)),Status='Unknown')

     Write(1,trim(adjustl(fmt_2)))Num_Ber

Close(Unit=1,Status='Keep') 

Stop
End Program Write_in_folder
我想打开名为的文件夹:
Result\u Num\u Ber

哪种解决方案好


如何检查同名文件夹是否已打开?如果是,则不需要执行此代码序列。

“如何检查具有该名称的文件夹是否已打开?如果是,则不需要执行此代码序列。”

我喜欢使用INQUIRE来查询目录和文件

CHARACTER(LEN=80)  :: Base_Name
CHARACTER(LEN=80)  :: SomeDirectory
CHARACTER(LEN=256) :: Full_Name
INTEGER            :: Len_SomeDirectory
LOGICAL            :: Existentialism

!....
SomeDirectory = '/data/2017'
Len_SomeDirectory = LEN_TRIM(SomeDirectory)
!...
INQUIRE(DIR=SomeDirectory, EXIST=Existentialism)
IF(Existentialism) THEN
  Full_name = SomeDirectory(1: Len_SomeDirectory) // '/' //   Base_Name(1:LEN_TRIM(Base_Name))
ELSE
  ! Maybe create some directory...
ENDIF
! etc
然后STAT或GETFILEINFOQQ可以让您了解您是否有写权限

可能是最容易/最安全的查克和错误,如果没有目录。。。然后手动创建目录并重新运行程序

如果目录或文件没有写权限,那么“怎么办”的故事也是一样的。。。“查克并出错,然后重新分组。”

“如何检查同名文件夹是否已打开?如果已打开,则无需执行此代码序列。”

我喜欢使用INQUIRE来查询目录和文件

CHARACTER(LEN=80)  :: Base_Name
CHARACTER(LEN=80)  :: SomeDirectory
CHARACTER(LEN=256) :: Full_Name
INTEGER            :: Len_SomeDirectory
LOGICAL            :: Existentialism

!....
SomeDirectory = '/data/2017'
Len_SomeDirectory = LEN_TRIM(SomeDirectory)
!...
INQUIRE(DIR=SomeDirectory, EXIST=Existentialism)
IF(Existentialism) THEN
  Full_name = SomeDirectory(1: Len_SomeDirectory) // '/' //   Base_Name(1:LEN_TRIM(Base_Name))
ELSE
  ! Maybe create some directory...
ENDIF
! etc
然后STAT或GETFILEINFOQQ可以让您了解您是否有写权限

可能是最容易/最安全的查克和错误,如果没有目录。。。然后手动创建目录并重新运行程序


如果目录或文件没有写权限,那么“怎么办”的故事也是一样的。。。“卡盘和错误并重新组合。”

使用。您正在用一种叫做Fortran的语言编程。为什么要把你的听众限制在少数跟随标签的人?你的代码有什么问题吗?它做了你想做的吗?实际上,你说的“打开文件夹”是什么意思?移动到目录?打开文件?无法编译源代码。您是否遇到任何错误消息?您应该向我们显示错误消息。
execute\u命令行
完全错误。你可能会发现其中一些有用的@Holmz:如果你想到的是GETFILEINFOQQ(我找不到任何关于GETINFOQQ的信息),那么我想粗略的GFortran等价物应该是STAT:Use。您正在用一种叫做Fortran的语言编程。为什么要把你的听众限制在少数跟随标签的人?你的代码有什么问题吗?它做了你想做的吗?实际上,你说的“打开文件夹”是什么意思?移动到目录?打开文件?无法编译源代码。您是否遇到任何错误消息?您应该向我们显示错误消息。
execute\u命令行
完全错误。你可能会发现其中一些有用的@Holmz:如果你想到GETFILEINFOQQ(我找不到任何关于GETINFOQQ的信息),然后我假设大致相当于GFortran的是STAT:需要哪个版本的GFortran来支持
dir=
说明符来
inquire
?这里是否已经涵盖了目录是否已“打开”?我不知道OP所说的打开目录是什么意思,@VladimirF:至少在POSIX世界中,您可以使用opendir()来“打开一个目录”,以获得一个“目录流”,您可以使用它来迭代所有目录条目。此外,您还可以打开()一个目录,该目录为您提供一个目录文件描述符,您可以使用该描述符,例如,使用openat()打开与该目录相关的文件。话虽如此,我知道没有Fortran编译器以某种方式将这些操作公开为Fortran IO单元,其次,OP看起来足够新手,他很可能对此一无所知。谢谢@francescalus-我猜“INQUIRE(DIR=…)”超出了标准,因此不在gfortran中。我被宠坏了,变得依赖了!DEC$和其他扩展。需要哪个版本的gfortran来支持
dir=
说明符以
inquire
?此处是否已涵盖目录是否已“打开”?我不知道OP所说的打开目录是什么意思,@VladimirF:至少在POSIX世界中,您可以使用opendir()来“打开一个目录”,以获得一个“目录流”,您可以使用它来迭代所有目录条目。此外,您还可以打开()一个目录,该目录为您提供一个目录文件描述符,您可以使用该描述符,例如,使用openat()打开与该目录相关的文件。话虽如此,我知道没有Fortran编译器以某种方式将这些操作公开为Fortran IO单元,其次,OP看起来足够新手,他很可能对此一无所知。谢谢@francescalus-我猜“INQUIRE(DIR=…)”超出了标准,因此不在gfortran中。我被宠坏了,变得依赖了!DEC$和其他扩展。