前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vfp多选文件函数,收藏有用

vfp多选文件函数,收藏有用

作者头像
加菲猫的VFP
发布2021-08-16 15:05:10
6680
发布2021-08-16 15:05:10
举报
文章被收录于专栏:加菲猫的VFP

狐友群里面刚好在聊这个问题。

梁林一【实易软件】:

vfp 的 getfile() 只能选择一个文件,不支持多选吗?

上传附件,想一次多选几个文件,调用哪个 win API?

vfp 项目管理器里,添加文件,就可以多选,与getfile()表面上一样一样的,应该是调用的同一个 win API,但做了不同的封装。

猫猫以前收藏的函数,派上用场了,就发到了群里面。

代码语言:javascript
复制
FUNCTION _GetOpenFileNames(szInitDir, szFileName, szFilter)
    LOCAL oFile
    oFile = CREATEOBJECT("MSComDlg.CommonDialog.1")
    oFile.Flags = 0x00080204    && 0x00080000 or 0x00000200 or 0x00000004
    oFile.Filter = szFilter
    oFile.maxFileSize = 10000 
    oFile.InitDir = szInitDir
    oFile.FileName = szFileName
    oFile.ShowOpen()
    RETURN oFile.FileName
ENDFUNC
*--调用方法

mystr=_GetOpenFileNames("c:", "", "jpg|*.jpg")  

然后,梁总贴心的总结了一下:

用 _GetOpenFileNames(szInitDir, szFileName, szFilter) 一次选择多个附件,

返回值看上去是以一个空格分隔,其实是以 chr(0) 分隔,第一个值是路径,其他的值是选择的多个文件名

getwordnum() 的第三个参数即分隔符 chr(0) 无效,所以 getwordnum() 分不开返回值

可以用 aLine() 以 cha(0) 分隔将返回值赋予数组

或者用 strtran() 将 chr(0) 替换为|,然后再用 getwordnum() 分解返回值

copy、wait window 等,遇到 chr(0) 则至此截断,后面的部分被忽略

为什么用chr(0) 来分隔文个名呢?

文件或路径带空格,用括号括起来,或用引号引起来。正是因为文件名或路径允许有空格,返回值才不能以空格分隔,而用了chr(0) 来分隔多个文件名。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加菲猫的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
项目管理
CODING 项目管理(CODING Project Management,CODING-PM)工具包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践。结合敏捷研发理念,帮助您对产品进行迭代规划,让每个迭代中的需求、任务、缺陷无障碍沟通流转, 让项目开发过程风险可控,达到可持续性快速迭代。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档