以文本方式查看主题

-  Fortran中文网  (http://fortran.cn/bbs/index.asp)
--  Fortran语言使用经验交流  (http://fortran.cn/bbs/list.asp?boardid=2)
----  [求助]请教:Fortran读取数据文件的路径问题以及批量处理  (http://fortran.cn/bbs/dispbbs.asp?boardid=2&id=2182)

--  作者:wwpwwp
--  发布时间:2010/12/27 16:29:58

--  [求助]请教:Fortran读取数据文件的路径问题以及批量处理
各位大侠:

   我需要用Fortran读取若干个的数据文件,假设1000个吧。从论坛里找到了处理的方法,感觉自己还能接受,方法如下:“把数据文件名取出来,写到一个文件A.txt里面,然后fortran循环读入这个文件,打开相应数据文件”。但我有点疑问:用来存放数据文件名的那个文件A有什么格式要求吗?数据文件名在A中存放成一列较好还是一行较好??我自己试了5个文件名,一行和一列都能够运行,但不知道多了会不会有区别。

   第二个问题是关于Fortran运行目录的:我现在的处理方法就是把Fortran文件和所有的数据文件放在一个目录下,然后运行程序,生成的结果数据文件也在同一个目录下。我的想法是在Fortran中能不能想办法通过路径简单的将程序文件和程序中需要调用的数据文件联系起来,而不必放在同一个目录下。我知道在matlab中可以通过函数fullfile将路径和文件名联系起来,请问Fortran中能不能实现相同的功能


--  作者:wwpwwp
--  发布时间:2010/12/28 14:50:03

--  

已经解决了;

第一个问题:一列一行都可以;

第二个问题:可在open函数中加入路径即可。

其实很简单,但自己是菜鸟,只能慢慢来了。


--  作者:roy870701
--  发布时间:2011/5/30 23:14:25

--  

师傅啊,我现在的问题跟你的是一样的啊,不知道该怎么处理啊。请师傅指教啊。我的现在是有2000多个txt的数据文件,文件名是按照时间命名的“2011.05.22.21.15.08.txt”,数据的结构是这样的:

3.0000000

通道X
通道Y
通道Z
m/s
m/s
m/s
     8000.000000     4000.000000     -100.000000
       10.000000       10.000000       10.000000
        0.000000        0.000000        0.000000
       28.700001       29.500000       27.600000
     -100.000000        0.000000        0.000000        0.000011
      -99.750000        0.000011        0.000010        0.000000
      -99.500000        0.000011        0.000000        0.000022
      -99.250000        0.000011        0.000010        0.000011
      -99.000000       -0.000011        0.000010        0.000011
      -98.750000        0.000011        0.000010        0.000000
      -98.500000        0.000011        0.000000        0.000011
      -98.250000        0.000022        0.000010        0.000011
      -98.000000       -0.000011        0.000010        0.000011
      -97.750000        0.000011        0.000010        0.000011
      -97.500000        0.000000       -0.000010        0.000000
      -97.250000        0.000011        0.000000       -0.000011
      -97.000000        0.000000        0.000000        0.000022
      -96.750000        0.000011        0.000010        0.000011
      -96.500000        0.000011        0.000000        0.000011
      -96.250000        0.000000        0.000010        0.000011
      -96.000000        0.000011        0.000000        0.000011
      -95.750000        0.000000        0.000000        0.000011
      -95.500000        0.000011        0.000000        0.000011
      -95.250000        0.000011        0.000000        0.000011
      -95.000000        0.000011        0.000000        0.000011
      -94.750000        0.000000        0.000010        0.000000
      -94.500000        0.000000        0.000010        0.000000
      -94.250000        0.000011        0.000000        0.000011
      -94.000000        0.000000        0.000000        0.000000
      -93.750000        0.000011        0.000000        0.000011
      -93.500000        0.000000        0.000000        0.000000

现在要从-100的位置开始读数据,第一列是时间轴,然后后边的三列是x y z 方向的数据,现在是要把三个轴上找出一个最大值,然后在这2000个文件里的最大值都找出来,比较排序,并最终生成一个按照最大值大小排序的文件名列表(包括两列,最大值和文件名),请问该如何实现啊?期待高手的指点啊。能给个思路也行,感恩不尽啊……


京ICP备05056801号