以文本方式查看主题

-  Fortran中文网  (http://fortran.cn/bbs/index.asp)
--  Fortran语言开发经验交流  (http://fortran.cn/bbs/list.asp?boardid=3)
----  [求助]WIN的API在F90中使用......  (http://fortran.cn/bbs/dispbbs.asp?boardid=3&id=1060)

--  作者:WHGF
--  发布时间:2007/9/27 9:01:07

--  [求助]WIN的API在F90中使用......

以下内容需要帖子数达到1才可以浏览


--  作者:lm_lxt
--  发布时间:2007/9/27 9:46:08

--  
下面是一段代码,你再完善一下吧,然后能否共享?呵呵

!程序的目的是查找文件是否存在

program file

use dfwin

CHARACTER*100 file_name

integer hFind

type(t_WIN32_FIND_DATA) FindFileData

hFind=INVALID_HANDLE_VALUE

do while(hFind==INVALID_HANDLE_VALUE)

write(*,*)

write(*,*) "请输入您要查询的文件名(包括路径),如 d:\\\\matlab7\\\\license.txt :"

read(*,*)  file_name

hFind=FindFirstFile(file_name,FindFileData)

    if(hFind==INVALID_HANDLE_VALUE)then

       write(*,*)"没有找到您想要的文件!"

    else

       write(*,*)"文件已找到,恭喜您!"

    endif

enddo

end program file

[此贴子已经被作者于2007-9-27 10:01:25编辑过]


--  作者:WHGF
--  发布时间:2007/9/27 10:14:07

--  
To lm_lxt
可以,我先试试,如果没有问题明天有结果,到时我帖出来。
谢谢!!!

--  作者:WHGF
--  发布时间:2007/9/27 10:17:12

--  
再问一下,你用的是CVF吗?为什么FindFirstFile没有接口说明?

--  作者:lm_lxt
--  发布时间:2007/9/27 10:20:23

--  

是CVF,你查帮助,里面有FindFirstFile的说明


--  作者:lm_lxt
--  发布时间:2007/9/27 10:20:41

--  
发错了

[此贴子已经被作者于2007-9-27 10:23:26编辑过]


--  作者:WHGF
--  发布时间:2007/9/27 10:31:20

--  
我查了帮助,
可能是这行最关键 use dfwin
--  作者:lm_lxt
--  发布时间:2007/9/27 10:37:18

--  
是的!那个库是对函数的封装
--  作者:WHGF
--  发布时间:2007/9/27 10:58:53

--  
受教了!谢谢
--  作者:WHGF
--  发布时间:2007/9/28 9:53:48

--  
这是我根据版主的代码修改后的内容。
用于处理找到符合条件的所有文件。

FUNCTION FindName( FileExt ) Result( hFind )
Use DFWIN
CHARACTER*(*)    FileExt
Integer(4)    hFind
Type(t_WIN32_FIND_DATA) FindFileData
Character*(64)    Cname
!-----------------------
!    hFind = INVALID_HANDLE_VALUE        ! = -1
    hFind = FindFirstFile(FileExt , FindFileData)
    If(hFind == INVALID_HANDLE_VALUE) Return ! 没有找到匹配文件,返回结果=-1

    ! 通过无限循环搜索所有指定类型的文件并进行处理
    ! FileExt 是搜索文件的类型(后缀名或通配符)
100    Cname = FindFileData%CFileName
        :    :
    ! 这里对搜索到的文件进行处理
        :    :
    If(FindNextFile(hFind , FindFileData) > 0) Goto 100
    hFind = 1    !正常结束
!-----------------------
End

京ICP备05056801号