本例可用于在同一个文件夹下,对文件名符合一定要求的文件进行循环。使用了VF(IVF,CVF,DVF)所扩展的函数,请确认您的编译器允许。
本例代码如下,将所有 C 盘下的文件输出,如果你懂得 windows通配符,那么使用这个代码会更得心应手,否则,您可能需要先了解一下它,效果如图:

05 | call DoWithWildcard ( "C:\*.*" , ToDoOneFile , n ) |
06 | write ( * , * ) '共' , n , '个文件' |
07 | End Program www_fcode_cn |
09 | Subroutine ToDoOneFile ( cFile , iLoop ) |
10 | Character ( Len = * ) , Intent ( IN ) :: cFile |
11 | Integer , Intent ( IN ) :: iLoop |
12 | Write ( * , * ) '第' , iLoop , '个文件:' , cFile |
16 | End Subroutine ToDoOneFile |
19 | Subroutine DoWithWildcard ( cWildcard , CallBack , iTotal ) |
21 | Use IFPort , only : GetFileInfoQQ , GetLastErrorQQ , FILE $INFO , FILE $LAST , FILE $ERROR , FILE $FIRST , ERR $NOMEM , ERR $NOENT , FILE $DIR |
24 | Subroutine CallBack ( cFile , iLoop ) |
25 | Character ( Len = * ) , Intent ( IN ) :: cFile |
26 | Integer , Intent ( IN ) :: iLoop |
27 | End Subroutine CallBack |
29 | Character ( Len = * ) , Intent ( IN ) :: cWildcard |
30 | Integer , Intent ( OUT ) :: iTotal |
31 | Type ( FILE $INFO ) :: stInfo |
32 | Integer ( KIND = INT_PTR_KIND ( ) ) iWildhandle |
33 | Integer ( 4 ) :: iLength , iRet |
34 | iWildhandle = FILE $FIRST |
37 | iLength = GetFileInfoQQ ( cWildCard , stInfo , iWildhandle ) |
38 | If ( ( iWildhandle == FILE $LAST ) .OR. ( iWildhandle == FILE $ERROR ) ) then |
39 | Select Case ( GetLastErrorQQ ( ) ) |
50 | If ( ( stInfo % permit .AND. FILE $DIR ) == 0 ) then |
51 | call CallBack ( Trim ( stInfo % Name ) , iTotal + 1 ) |
55 | End Subroutine DoWithWildcard |
相关热词搜索:文件夹 循环 读取文件
上一篇:为整数添加千分位符号函数
下一篇:MD5 哈希值计算程序