首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

怎么设置messagebox()窗口在表单的指定位置出现?怎么得到FTP服务器上文件的字节数

2013-04-09 
如何设置messagebox()窗口在表单的指定位置出现?如何得到FTP服务器上文件的字节数?现有两个问题向电脑专家

如何设置messagebox()窗口在表单的指定位置出现?如何得到FTP服务器上文件的字节数?
    现有两个问题向电脑专家请教:
    1、如何设置用户自定义对话框messagebox()窗口在表单的指定位置出现?
    一般messagebox()窗口都在表单的中心位置出现,现在要求在表单的指定位置出现,该如何设置?

    2、如何得到FTP服务器上文件的字节数?
    用木瓜的myfll函数“HttpGetFileSize(cUrl)”获取网络FTP服务器中的文件大小得到的是负数而得不到真值。(该函数的说明中标明:“获取网络中的文件大小,一些服务器可能不支持文件大小。”) 
   本人为某公司开发的一个VFP运行软件中,打开软件时首先要求用户下载FTP服务器上的“上级来文汇编”(dbf表文件,字段有发文日期、发文部门、文件标题、文件内容,该表不定期增添新文件),让用户能查阅最新发表的文件。但FTP服务器上的“上级来文汇编”内容较多,下载需要化费时间,也没有必要每次都要下载,只有当FTP服务器上的“上级来文汇编”中内容新增时就需要下载。这就要求用户软件先检查FTP服务器上的“上级来文汇编”的字节数与本机上的“上级来文汇编”的字节数是否一致,如不一致就下载,这样就不需要每次打开软件时都重复下载。因此,需要得到FTP服务器上文件的字节数。

    敬向电脑专家请教,不胜感激!
[解决办法]
1、不用 Messagebox(),用表单或容器仿一个。
2、HttpGetFileSize 函数应该是不能用于 FTP 服务器。
用 FtpAFile(hFtp,cArrayName) 枚举Ftp当前路径下的所有文件和文件夹
然后通过文件大小或修改日期、时间来判断文件是否有更新

返回值:
整型,文件(包含文件夹)的个数。 
参数:
hFtp:由FtpConnect()返回的句柄 
cArrayName:字符型,要创建的数组名字。
此数组结构等同于VFP的ADir()函数生成的数组:

1-文件名
2-文件大小
3-最后修改日期
4-最后修改时间
5-文件属性,共5字节,如果包含"D",则这是一个文件夹,具体请参阅VFP帮助中的ADir()函数 

[解决办法]
VFP中压缩工具WinRAR的调用
-------------------------------------------
压缩:

Erase bak.rar
Run /N7 WinRAR.Exe a -ibck -r -k -o+ -Y -hp123 -p123 bak.rar Dbf\*.*

Run /N7 WinRAR.Exe a -ibck -r -o+ -Y -hp123 -p123 bak.rar Dbf\*.*

解压:

Run /N7 WinRAR.Exe x -ibck -r -k -o+ -Y -hp123 -p123 bak.rar Dbf\*.*

Run /N7 WinRAR.Exe x -ibck -r -o+ -Y -hp123 -p123 bak.rar Dbf\*.*

bak 变量可以这样用:
cmd = "路径\rar.exe a -ibck -r -k -o+ -ep1 -y " + bak + ".rar email" + abc + ".*"
RUN /n7 &cmd

 要等待 rar 命令结束,可以用其他方法,例如:

cmd = ["c:\Program Files\WinRar\rar.exe" a -ibck -r -k -o+ -ep1 -y ] + bak + [.rar email\] + bak + [.*]
oWsh = CreateObject("wscript.shell")
oWsh.Run(cmd, 8, .T.)     &&将 8 改为 0 则不显示运行界面
*窗口显示模式取值:
* Hide = 0                 '不显示窗口
* MaximizedFocus = 3       '最大化显示,并设置为活动
* MinimizedFocus = 2       '最小化显示,并设置为活动
* MinimizedNoFocus = 6     '最小化显示
* NormalFocus = 1          '正常显示,并设置为活动
* NormalNoFocus = 4        '正常显示



参数说明:
a:添加到档案文件中
x:从档案文件中全路径释放文件

-ibck:后台运行WinRAR
-r:连同子文件夹操作
-k:锁定档案文件
-o+:覆盖已经存在的文件
-Y:对所有询问均回应为“是”
-hp123:加密文件数据和文件头,密码为123
-p123:设置密码为123,此密码上一个密码可以不一样

bak.rar:压缩后的文件名或要解压的文件(.rar为自定义扩展名)
Dbf\*.*:要压缩的文件或要解压到的文件位置

更详细参数请参考:WinRAR中帮助文件

调用 WinRAR,要将 WinRAR 安装到目标机或将安装后的 WinRAR 发布到你的程序目录下。


[解决办法]
1、用 FtpAFile() 取得 FTP 服务器上的文件夹信息后,再用 FtpSetCurrentDir() 设置当前文件夹为你要取得的文件夹,然后再用 FtpAFile() 取得你设置的当前文件夹中的文件信息。

2、利用 网速测试 等页面,然后取其中的网速关键字。
[解决办法]
没有用过 VFP8.0,一直在用 VFP9.0。

利用网速测试等页面:这个需要找一个能够提供测速的页面,这个页面确定了,实现起来很容易了。

热点排行