您在本站的位置:主 页 >> 站长专区 >> 站长作品:

《如何让 Foxpro 生成带命令行参数的 .EXE 文件》《Foxpro 中 Wait 命令妙用两例》

《电脑报.1997年第25期》】     如何让 Foxpro 生成带命令行参数的 .EXE 文件
    怎样让 Foxpro 编译、链接生成的 .EXE 文件带命令行参数,在一般的参考书中未见介绍。本人经过摸索,寻找出两种方法,供读者朋友借鉴。
    (一)、利用 DOS 的环境变量向 Foxpro 生成的 EXE 文件传递参数。我们知道,Foxpro 的函数 Getenv() 用来获取在 DOS 下定义的某环境变量的值。利用这一点,我们在 DOS 下将 Foxpro 需带的命令行参数先赋给某 DOS 环境变量 (不要与 Dos 系统自用的 Path、Temp、Comspec、Prompt 等重名), 然后在 Foxpro 生成的 EXE 文件中通过前述函数获取参数的值即可。 后附程序一 Setpara.bat 首先设置环境变量 V1 和 V2,程序二 Getpar-a.prg 检测这两个参数的值。 读者可将 Getpara.prg 用 Foxpro 编译后验证此程序。用 Setpara.bat 程序启动,如:
    C:\FOX>Setpara p1 P2
    屏幕显示:
    命令行参数1=p1
    命令行参数2=P2
     程序一:
     Setpara.bat:
     @echo off
     set v1=%1
     set v2=%2
     getpara.exe
     rem Rlease V1,V2
     set v1=
     set v2=
    程序二:
    Getpara.prg:
     set talk off
     cmdpara1=getenv("v1")
     cmdpara2=getenv("v2")
     @ 10,10 SAY "命令行参数1="+cmdpara1
     @ 12,10 SAY "命令行参数2="+cmdpara2
     @ 14,10 say "Press a key Go on."
     ink=inkey(0)
     return
    (二)、 其实,Foxpro 的 .prg 命令文件本身就可获得父进程传递的参数,当上级调用者为 DOS 时,这个特征照样有效,只是在参数传递形式上稍有不同。如程序三 Getpara2.prg,经过编译链接后在 DOS 下运行:
     C:\FOX>getpara2 Para1 para2
    屏幕显示:
     参数1=Para1
     参数2=para2
     程序三:
     Getpara2.prg:
     para v1,v2
     set talk off
     ? "参数1=",v1
     ? "参数2=",v2
     ink=inkey(0)
     return
    注意,以上二、三程序如果在 Foxpro 集成环境下运行,要用不同的形式,如程序三在 Foxpro 命令窗口中须以
     Do getpara2 with "Para1"," Para2"
的形式运行。
    有关 Foxpro 命令文件编译成 .EXE 文件的方法, 请参考<<电脑报>>的有关文章。以上程序在 COMPAQ presario 460 型 486sx/66 机子上,Foxpro 2.5 for DOS 环境下运行通过。

《电脑报.1997年第44期》】     Foxpro 中“Wait”命令妙用两例
    “WAIT”命令在早期的 dBASE 及 Foxbase 数据库语言中常被用来暂停程序的执行, 等待用户按键。在功能强大的 Foxpro 2.5/2.6 for DOS/Windows 版本中,这条命令的功能得到了极大的扩充, 它不但具有原 dBASE 及 Foxbase 的所有功能,而且具有了与 Foxpro 风格一致的图形用户界面,而且能响应鼠标按键, 给编程带来了极大的便利。
    现给读者朋友介绍扩充后的“WAIT”命令在 Foxpro 编程中两个新鲜的用法。
    (一)、用作程序的提示信息窗口
    在 Foxpro 的程序中,经常有大量的提示信息要以文本窗口的形式向用户通报, 而定义和激活一个窗口,然后再向窗口中输出文字信息,不但耗时,而且要写大量的代码。而使用了“WAIT” 命令后只需一句代码就可完成上述工作,即:
    WAIT ["文本信息"] WINDOW [NOWAIT]/[TIMEOUT <秒数>]
    该命令在屏幕或主窗口的右上角打开一个风格统一的带阴影的长条矩形窗口, 窗口中显示着文本提示信息。可选项 [NOWAIT] 使程序在“WAIT” 语句执行后不等待用户的键盘或鼠标按键而是继续执行。 可选项 [TIMEOUT <秒数>] 设置“WAIT”命令等待的时间(单位:秒,可使用小数如 0.1 秒)。可选项 [NOWAIT] 和 [TIMEOUT <秒数>] 不要同时使用。["文本信息"] 可用 C 型表达式或 C 型常量构成。
    (二)、用“WAIT”命令辅助调试程序
    用“WAIT”命令辅助调试程序是“WAIT”命令的又一巧妙用法。虽然 Foxpro 有一 Debug 窗口用于调试程序时实时监视指定内存变量的值,但是有时 Debug 窗口被应用程序窗口遮挡在后面,无法看到监视的内存变量的值。 而我们只要在程序的适当部位设置“WAIT”语句,即:
    WAIT WINDOW
即可在程序执行到该语句时使程序暂停,观察变量的值。N 型、D 型等内存变量或字段名变量可用函数转换成 C 型变量使用。
    以上是笔者在数据库应用系统的编程中,经过长期实践摸索出的“WAIT”命令的两个用法, 笔者期望读者提供更多的用法。以上方法在 DOS 版和 Windows 版的 Foxpro 2.5/2.6 中验证通过。
返回“站长专区”
Copyright(C) By ZhangQing 张庆 返回主页
站长邮箱:zhangking@263.net  Bp:029-95808 呼 822686