简洁高效的FoxPro通用数据输入程序 石望湘 1997-01-01   在Foxpro的编程中,经常需要编写字段的数据输入模块,许多朋友都是采用一个字段对应一条get和read语句的编程方法,不仅书写繁琐,而且还会因为字段名称、类型以及宽度的变化而修改源程序,实在是事倍功半。实际上,可以通过宏替换&编写一个根本不必考虑具体数据库中字段情况的简明高效的Foxpro通用数据输入程序,真正而充分地体现Foxpro的程序与数据的无关性。   下面假设数据库文件名为MAIN.DBF,以修改库中原有数据为例,给出完整的通用数据输入核心源程序如下:   clea   set talk off   use main   *以下7行读取字段个数,并将各字段名称赋给数组S   s1=fcou()   dime s(s1)   i=1   do whil i<=s1   s(i)=fiel(i)   i=i+1   endd   do whil.not.eof()   j=1   * j=1 首先显示所有字段的原来值   * j=2 然后进行各个字段依次输入   do whil j<=2   i=1   do whil i<=s1   if j=1   @i,10 say s(i)+“:”+spac(10-len(s(i)))   else   @i,21 get &s(i)   read   *以下if嵌套实现Ctrl+W强制完成数据输入   if read()=270   exit   endi   endi   @i,21 say &s(i)   *以下if嵌套实现字段间的上下移动   if read()=4.and.i<>1   i=i-1   else   i=i+1   endi   endd   j=j+1   endd   if read()=270   exit   endi   skip   endd   rele s   set talk on   clos all   retu   以上通用数据输入核心源程序虽然很短小但是非常有效,除了未考虑特殊的General和Picture字段类型输入,其它所有类型的字段均可自动匹配。如果您正在编写输入模块,不妨作个参考,将这段程序追加到模块主体,按照您的具体要求,在适当的地方略加几条语句,并稍微润色@语句的行列值,再在SKIP位置加上记录上下翻阅或跳转,则可完成。