环境设置篇

流星尔 2004-01-15 10:21:51
程序环境设置篇 每一个应用程序,都有自己相应的环境。   由于广大程序员一般都从FoxBase-FoxPro-VFP这样的编程经历,所以在程序编写时总是习惯的采用全局变量的方式来初始化程序的环境。如:   Public nPath, nName, nID   nPath = ...   nName = ...   nID = ... 等等。以方便在以后的各种模块中可随时调用所需的数据,殊不知这样给编程设置了一个很麻烦的障碍:   1、在程序中由于数据操作频繁,变量定义较多,很可能一下子会搞不清变量名,无意中把其它数据赋予全局变量,改变了全局变量的值,导致在系统测试时问题百出,而且分析原因也比较麻烦。   2、由于VFP系统在内存处理方面较弱,如在程序中采用了全局变量设置环境的方式,则在每一个模块进入、退出时无法清除内存,给系统的稳定性方面埋下隐患。   我以前也跟大家提过我自己在用的《计划生育信息管理软件》,用FoxPro2.5B For Windows编译的,其中的模块化水平及数据处理方面有着非常精深的应用。其程序运行速度之快,数据处理之稳定,程序模块之精炼,就连我现在如果让我一个人仿制的话,我也没有太大的把握,而且他对于变量的应用可以说是到了出神入化之境地。我曾经反编译出来(应该说是不太道德),分析其中的一个数据随机查询模块,到现在我还搞不太清楚(所以有人经常说,分析一个程序还不如自己写一个来得省心、省力,不知为什么还有那么多人在关于反编译的问题??)。   但到最后问题就来了,在进行大量的数据操作之后,系统经常性导致内存溢出(完全可以排除其它原因),非正常退出。我也曾一度怀疑是操作系统或CPU频率等其它因素造成的,但我在调查了全市35个乡镇后,才怀疑是由于软件本身存在的缺陷。最后在一本技术资料上找到了真正的原因:FOXPro在内存处理方面比较弱(由此想到国外的软件生产商为什么连在测试一个按钮时都一定要按100下才算测试通过!!!我们测试了吗?)。所以我写程序模块时一定要先回到系统的初始状态,再重新开始。   原因找出来了,如何解决?   在每调用一个模块前先回到初始化环境设置。也就是说先清空内存变量,关闭所有打开的东东,再重新设置环境变量,系统就不再出现这种情况,但由于模块多,而且每调用一个模块都要清空--设置,很麻烦!随它吧,小程序和一般数据处理不多的程序肯定不会出现这种情况,但心理总觉不踏实。   所以有一段时间我想尽方法忘记所有的函数,也就是说,我以一个初学者的眼光重新去看VFP的相关资料,直到最近才有了一个比较完美的解决方法。   出于对软件高效、高速、精炼的要求,我在编程时都采用VFP的_Screen作为主界面,从不用自己的表单来代替(当然,如果你用自己的表单一样也可以采用以下的方法),是否可以用给_Screen添加属必的方法来解决呢?答案在经测试后是可以的。而且更加方便:   _Screen.AddProperty("nPath")   _Screen.AddProperty("nName")   _Screen.AddProperty("nID")   _Screen.nPath = "C:\" ……   在以后的各个模块中,你只要在一开始添加完所需的环境设置后,无论你怎么样都可以!!   CLEAR ALL   CLOSE ALL   CLEAR PROGRAM   …………   再运行模块。   [编者按]:我一直很不注意在这方面积累经验,并把它写出来与大家一起分享。我也一直想改变一下自己的惰性心理,可实在太难了--打字员的活很难干的,根本静不下心来。最近大家对于VFP的前景、论坛的前景讨论很热烈,这是一个好的兆头。是一个上进的开始。我真心希望自己(包括各位高手)能静下心来,多写写体会、经验,不但是对自己写作、思路的一种有效的锻炼,而且对于广大的VFP爱好者来说,未心不是福音。   我还有一个怪毛病就是写完了从不去看第二遍,如有不当之处,与大家探讨。最好大家说说自己的想法,这类的文章该如何写,用怎样的思路写--要出书也好,要上报有也,文章首先得经得起大家的评价。
...全文
115 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
流星尔 2004-01-15
  • 打赏
  • 举报
回复
此系转贴

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧