主题:如何用Fortran读出该Fortran程序所在目录下的所有目录名称?
icola
[专家分:0] 发布于 2011-04-08 21:19:00
如何用Fortran读出该Fortran程序所在目录下的所有目录名称?
回复列表 (共13个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2011-04-09 10:08:00
這得用系統API,并且這東東本來就不是FORTRAN所擅長的,寫了這些代碼就無法跨平臺了。
不太理解你們為什么喜歡用FORTRAN做這些與數值無關的事兒呢?
板凳
icola [专家分:0] 发布于 2011-04-09 12:32:00
那就说API怎么调用也行,我要是知道了还需要问吗
3 楼
cgl_lgs [专家分:21040] 发布于 2011-04-09 16:06:00
系統API與具體語言關系并不是很大,大體的過程就是:
取得一個查找器句柄;
通過句柄給查找器一個通配符;
循環到查找函數返回空值為止:
查詢查找器返回的文件的屬性;
如果屬性中有“目錄”則記錄下來;
循環體結束。
后期處理
……
上面的步驟,無論你是用F也好C也罷,都是一樣的。
4 楼
yeg001 [专家分:14390] 发布于 2011-04-09 20:07:00
楼主如果是做系统依赖,做界面. 靠这个赚钱的就学习一下win的API.
这个论坛里面确实有人做这方面的, 但是否回答却决于别人有没有时间和你的态度.
5 楼
臭石头雪球 [专家分:23030] 发布于 2011-04-10 08:35:00
我敬佩用 Fortran 做数值做研究的人。
但是一些常见的操作系统依赖,有时候也迫不得已。尽管你可以低调的写成命令行程序,但如果研究需要对多个文件进行循环,这些操作系统扩展还是很方便的。
看个人爱好吧,加了它们必定影响源代码的兼容性和跨平台性。
如果是 windows 的 VF 系列,可以用编译器本身扩展的 GetFileInfoQQ 函数。
或者用 Kernel32 的 FindFirstFile 和 FindNextFile 两个 API 函数。
6 楼
cgl_lgs [专家分:21040] 发布于 2011-04-10 16:22:00
呵呵,雪球兄应该是目前咱FORTRAN区最熟悉系统API的大牛了:)
我已经被C++Builder惯得忘却了很多API了:)
7 楼
dongyuanxun [专家分:7180] 发布于 2011-04-11 01:42:00
[quote]我敬佩用 Fortran 做数值做研究的人。
但是一些常见的操作系统依赖,有时候也迫不得已。尽管你可以低调的写成命令行程序,但如果研究需要对多个文件进行循环,这些操作系统扩展还是很方便的。
看个人爱好吧,加了它们必定影响源代码的兼容性和跨平台性。
如果是 windows 的 VF 系列,可以用编译器本身扩展的 GetFileInfoQQ 函数。
或者用 Kernel32 的 FindFirstFile 和 FindNextFile 两个 API 函数。[/quote]
这个可以用预处理实现跨平台,利用编译器的默认定义宏
#ifdef _WIN32
use windows api (也可以直接使用cmd命令,如dir)
#elif
use linux api (也可以使用shell命令,如ls)
#endif
gfortran使用-E处理,ifort使用fpp编译
这样就跨平台了,Oh yea!
8 楼
dongyuanxun [专家分:7180] 发布于 2011-04-11 01:43:00
[quote]呵呵,雪球兄应该是目前咱FORTRAN区最熟悉系统API的大牛了:)
我已经被C++Builder惯得忘却了很多API了:)[/quote]
你会的好多,加入了n多圈子,单机游戏一般玩啥?
9 楼
cgl_lgs [专家分:21040] 发布于 2011-04-11 09:40:00
[quote][quote]呵呵,雪球兄应该是目前咱FORTRAN区最熟悉系统API的大牛了:)
我已经被C++Builder惯得忘却了很多API了:)[/quote]
你会的好多,加入了n多圈子,单机游戏一般玩啥?[/quote]
呵呵,我游戏玩儿得非常烂,也好久没玩儿了:)
单机嘛,玩儿过:
FarCry II
极限滑板
极品飞车
等等。
RPG很少玩儿。
还有...Illusion的绝大多数作品(你懂的)哈哈:)
10 楼
yeg001 [专家分:14390] 发布于 2011-04-11 10:14:00
我也懂的 ;)
我来回复