【问题标题】:Powerbuilder queryPowerbuilder查询
【发布时间】:2011-02-11 00:02:16
【问题描述】:

如何使用 PowerBuilder 中的文件函数在任何目录(即 c:\、d:\ 等)中搜索 .txt 文件?

【问题讨论】:

  • 您是要在目录中搜索 *.txt 文件,还是要扫描目录中的*.txt 文件以查找特定内容?一个目录或子树?以及什么 PB 版本和目标类型?

标签: powerbuilder


【解决方案1】:

因此,如果您正在做的只是查找文件,您可以使用 listbox.DirList() 来执行此操作,或者如果您想在不绑定到窗口或控件的情况下执行此操作,您可以调用 WinAPI 函数这样做:

Function long FindFirstFileW (ref string filename, ref os_finddata findfiledata) library "KERNEL32.DLL" alias for "FindFirstFileW"
Function boolean FindNextFileW (long handle, ref os_finddata findfiledata) library "KERNEL32.DLL" alias for "FindNextFileW"

其中 os_finddata 被定义为

unsignedlong        ul_fileattributes
os_filedatetime     str_creationtime
os_filedatetime     str_lastaccesstime
os_filedatetime     str_lastwritetime
unsignedlong        ul_filesizehigh
unsignedlong        ul_filesizelow
unsignedlong        ul_reserved0
unsignedlong        ul_reserved1
character       ch_filename[260]
character       ch_alternatefilename[14]

os_filedatetime 定义为

unsignedlong        ul_lowdatetime
unsignedlong        ul_highdatetime

如果您想了解如何使用它们的示例,请查看对象 (pfcapsrv.pbl)pfc_n_cst_filesrvunicode.of_DirList () 的 PFC(PowerBuilder Foundation Classes,可在 CodeXchange 获得)。 (顺便说一句,这就是这些原型和结构复制的地方。)

祝你好运,

特里

【讨论】:

    【解决方案2】:

    您可以使用ListBox 控件根据给定的字符串模式(*.txt、myfile.txt、.etc)获取文件/目录列表。查看帮助中的DirList 函数。下面是来自here 的示例,展示了如何使用 ListBox 控件而不将其直观地放在窗口上。

    string ls_files[]
    window lw_1
    listbox llb_1
    int li_items, li_i
    
    Open( lw_1 )
    
    lw_1.openUserObject( llb_1 )
    
    llb_1.DirList( sFileSpec, uFileType )
    
    li_items = llb_1.TotalItems()
    
    For li_i = 1 to li_items
    
    ls_files[ li_i ] = llb_1.Text( li_i )
    
    Next
    
    lw_1.closeUserObject( llb_1 )
    
    Close( lw_1 )
    

    【讨论】:

    • 您必须在窗口上拥有一个控件才能使 DirList 工作,这很烦人。它增加了不必要的步骤,尤其是当我使用 NVO 工作时。
    • 我相信它不必是可见的。您只需在代码中添加列表框并删除它。
    猜你喜欢
    • 2019-07-04
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    相关资源
    最近更新 更多