请解释一段VFP程序代码,50分!

请解释一段VFP程序代码,50分!,第1张

打开工作表2

打开data目录下的dyzmdbf表

删除dyzm表中所有记录

从data目录下的dyk1dbf表中拷贝数据到dyzm表

打开工作表1

将总记录数赋值给a

记录指针指向首记录

给j赋值1

(开始循环)

将字段ZKZH左右空格去除后赋值给fzkzh

将j转换为字符型后去除左右空格,然后赋值给i

将kch左右空格去除后赋值给fkch

将kcmc左右空格去除后赋值给fkcmc

将cj左右空格去除后赋值给fcj

将xf左右空格去除后赋值给fxf

选择工作表2

将工作表2的ZKZH字段值等于fzkzh的所有记录的几个字段用对应值替换掉

选择工作表1

记录指针下移1个记录

将j值加1

(结束循环)

打开工作表2

将变量a转换为字符型后去除左右空格,将对应值替换掉tgms字段

关闭当前工作表

不可能的,编译与反编译永远在较量中前进,道高一尺魔高一丈。只能说不被“一般人”反编译,除了基本的加壳加密等方式,还有个狠的,就是在程序中设置“逻辑炸d”(自己设计),当某一个进程或程序段被反复跟踪、、时该炸d就会自动“引爆”使整个程序崩溃,而无法继续反编译。当然了也有牛人会“拆d”了,呵呵,毕竟是少数中的少数

计算机界有句名言“没有解不开的密码!”和这道理差不多。

以上是我个人理解

1 n=0 &&定义一个变量n,初始值为0

2 for i=1 to 9 &&i为第一个乘数,从1到9循环

3 for j=1to 9 &&j为第二个乘数,从1到9循环

4 if n%9=0 then &&如果n为0或者9,那么就换行显示

5 str(i,1)+""+str(j,1)+"="+str(ij,2)

6 &&拼接显示的字符串 str(ij,2) 意思为要返回的字符串长度为2

7 else &&如果n不为0,则直接在前面显示的信息后显示,不用换行显示

8 space(6)+str(i,1)+""+str(j,1)+"="+str(ij,2)

9 &&的意思是显示信息不换行显示,每行信息中的字符串间隔加6个空格

10 endif

11 n=n+1 &&j每循环一次,n就加1,判断他是否换行。对应第4行

12 endfor

13 n=0 &&J完成一个循环后,i进入下一个循环,n从0重新开始

14 endfor

需要以下四个动态链接库才可以在任何 *** 作系统和电脑上运行(不管装没有装VFP)

gdiplusdll

msvcr70dll

vfp8rdll

vfp8renudll

以上的是VFP80环境下开发的程序必需的动态链接库

如果是VFP60开发的

则是

gdiplusdll

msvcr70dll

vfp6rdll

vfp6renudll

在电脑上搜索到它们并把他们和程序放在同一文件夹里,程序就能随便运行了

1、最简单的办法是将项目下的所有数据表文件、数据库文件、cdx文件、exe文件以及VFP安装目录中的VFP6RDLL,VFP6RCHSDLL两个文件复制到一个文件夹里,这样已经完成了打包、并制作成了绿色版的软件,你再拿到没有安装VFP环境的电脑中运行exe文件试试,发现可以脱离VFP环境运行了。(以上是VFP60制作的软件,如果是VFP70或80等,则将VFP6RDLL,VFP6RCHSDLL两个文件作相应替换)。

2、如果你不喜欢这种方式,可以打开VFP程序,在菜单中选择“工具→向导→安装”,接下来的对话框应该都看得懂的。这样制作的软件同样可脱离VFP环境运行。使用前需要在电脑中安装该制作好的软件,也就是在电脑注册表中添加一些信息。与上面的办法不同的是:前者不会在注册表中添加信息,不用了直接删除即可;后者需进入控制面板进行删除你的软件程序;另外后者的个头大,前者的个头小。

制作绿色版软件关于库文件的补充说明:

需要把VFP的运行库文件拷贝到EXE所在目录或系统目录下即可。

VFP6 的运行库:vfp6rdll、vfp6rchsdll、 (vfp6runexe、vfp6rdll、vfp6renudll、 gdiplusdll )

VFP7 的运行库:vfp7rdll、vfp7rchsdll、(gdiplusdll、msvcr70dll、vfp7renudll )

VFP8 的运行库:vfp8rdll、vfp8rchsdll、(gdiplusdll、msvcr70dll)

VFP9 的运行库:vfp9rdll、vfp9rchsdll、(gdiplusdll、vfp9tdll、msvcr71dll)

在大多情况下VFP6RDLL,VFP6RCHSDLL就够了,

在c:\windows\system可以找到这些文件!

一般情况下不需要VEPRUNEXE。只需 VFP6RCHSDLL VFP6RDLL 两个文件

另外补充一下:

VFP6RDLL是必选的运行时刻文件(注意与VFP的版本要一致),而VFP6RCHSDLL是中文版语言支持库(对应英文版支持为VFP6RENUDLL),而FOXRUNexe只在个别时候才加上(如程序中需要运行DOS程序而不想让它出现DOS窗口等情形)

如果第二条记录1-5字符也是1号同学的成绩的话,建议把表格分割成新表格处理

SELECT SUBSTR(score, 1, 5) FROM TAB

UNION ALL

SELECT SUBSTR(score, 6, 5) FROM TAB

UNION ALL

SELECT SUBSTR(score, 11, 5) FROM TAB

UNION ALL

SELECT SUBSTR(score, 16, 5) FROM TAB

UNION ALL

SELECT SUBSTR(score, 21, 5) FROM TAB

然后计算每一条记录的和

CASE(SUBSTR(score, 1, 1) WHEN 'A' THEN 20

WHEN 'B' THEN 18

WHEN 'C' THEN 12

WHEN 'D' THEN 8

ELSE 0 END)

如果要每条记录5个分割计算,

那就substr每个字符,然后用case换算求和。。

以上就是关于请解释一段VFP程序代码,50分!全部的内容,包括:请解释一段VFP程序代码,50分!、如何防止编译后的VFP可执行程序不被反编译、VFP程序求助!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9495537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存