VFP的登录表单的设计

经常发现有朋友不能很好地设计VFP的登录界面,主要存在的问题有: (1)无论输入什么都能正常登录;(2)无论输入什么都不能正常登录;(3)输入一个正确的用户无论密码怎样都能正常登录;等等,不一而足。 检查发现,产生这些问题的原因是多方面的,但程序思路不对是肯定的。我们知道,登录的首要条件是用户名和密码都同时满足要求才对。同时,比较用户名和密码的时候不能只作不精确地比较,而是要做精确比较;用户名和密码必须同时进行比较。在查找了用户名和密码之后,正常查找的结果要么正确(此时系统登录成功),要么错误。针对登录错误的情况,记录登录次数。为了保证次数的连续性,必须...
VFP程序 | 2006-12-16 18:28 | 阅读 13735 次 | 评论 0 条

进度条控件_progressbar用法

今天将用测试过的进度条控件_therm的用法简单说说。 1.添加进度条控件 你建立一个表单之后,遇到需要较长时间处理任务的时候,总是希望有一个提示用户进度的工具。 查找发现VFP提供了这样的工具,_therm.vcx。它不同于.ocx控件,因此,不能使用菜单中工具和添加ActiveX控件的方法添加进度条。 正确的添加方法是: (1)点击“表单控件”这个工具栏的“查看类”图标; (2)弹出一个快捷菜单,单击添加; (3)在安装了VFP的系统文件夹...\VFP98\FCC\这个文件夹里找到可视类库“_therm.vcx”; (4)经过上述过程,我...
VFP程序 | 2006-11-17 07:08 | 阅读 6216 次 | 评论 0 条

超级素数问题(4)

****** 统计X以内的超级素数的个数 By Tiger5392 (C)Copyright 2006-2006****** 语法*** ?超级素数(nExpr)*** nExpr:正整数,表示要计算从1到该数之间的超级素数*** 返回:超级素数的个数****** 相关知识*** 超级素数:一个素数,去掉个位是素数;去掉个位和十位也是素数;*** 直到保留到最高位依然是素数,这个素数称为超级素数。***PARAMETERS nNumPRIVATE nNum,tStartTime,nTotal,nCnt,lIsSupperPrimeCLEAR...
VFP程序 | 2006-10-10 20:06 | 阅读 3793 次 | 评论 0 条

用VFP判断字符串是否为回文(2)

* 回文 (C)Copyright 2006-2006 By Tiger5392* 用法* ?回文(cExpress)* 参数* cExpress: 字符型常量、变量、函数、表达式* 返回值* 一个数值* 数值 含义* 0 是一个空串* 1 是一个字节回文,是两个字节回文* 2 是一个字节回文,不是两个字节回文* 3 不是一个字节回文,是两个字节回文* 4 不是一个字节回文,不是两个字节回文* 5 是英文...
VFP程序 | 2006-10-08 23:33 | 阅读 5499 次 | 评论 0 条

超级素数问题(3)

FUNCTION IsSupperPrimePARAMETERS nNumPRIVATE nNum,nNum1,cNum,nCnt,lIsSupperPrimeIF SUBSTR(ALLTRIM(STR(nNum)),1,1)$"14689" RETURN .F. &&若数值最高位不为2,3,5,7之一,则判定该数不为超级素数ENDIFFOR nCnt=0 TO LEN(ALLTRIM(STR(nNum)))-2 nNum1=INT(nNum/10^nCnt) &&将原数去掉从个位开始的nCnt位 cNum=SUBSTR(...
VFP程序 | 2006-10-08 10:34 | 阅读 4191 次 | 评论 0 条

超级素数问题(2)

****** 判断一个数是否为超级素数 By Tiger5392 (C)Copyright 2006-2006****** 相关知识*** 超级素数:一个素数,去掉个位是素数;去掉个位和十位也是素数;......;*** 直到保留到最高位依然是素数,这个素数称为超级素数。****** 编程思路*** 1.素数一定不能是1。给定的数若为超级素数,则高位不能是1。*** 2.素数一定不能被2整除(2除外)。给定的数若为超级素数,则各位数字不能含有0,2,4,6,8(高位2除外)。*** 3.素数一定不能被5整除(5除外)。给定的数若为超级素数,...
VFP程序 | 2006-10-07 13:36 | 阅读 4523 次 | 评论 0 条

VFP的查询(3)之模糊查询

VFP程序经常用到查询,其中有模糊查询的情况。用AT()和$都不能满足需要,这个时候就要用SELECT-SQL的LIKE子句了。但是需要查询的内容被写入一个文本框,如何使用LIKE子句呢?一个处理的思路就是一个字符一个字符地取出来。遇到需要查询单字节字符倒也无妨,但是需要处理双字节,上述思路就错了。正确的办法就是“遇单取单,遇双取双”。这就需要用到函数ISLEADBYTE()函数了。 就上述模糊查询思路给一个例子。假如数据表(职工.DBF)的内容显示在表格(GRID1)中,需要查询的字段为“姓名”,指定查询的模糊数据在文本框(TEXT1)中。“查询”命令按钮实现查询。则该命令按钮的CL...
VFP程序 | 2006-10-06 02:03 | 阅读 8371 次 | 评论 1 条

汤司令、老虎与狐狸

我(老虎)与汤司令相识很早,那时候都是一个人吃饱全家不饿的快乐单身汉。 我是做生产计划的。用手工做久了,总觉得工作太枯燥,做什么没有挑战性,也没有激情。于是建议老板买台电脑,我们做点程序代替手工。没想到,老板居然同意了。凭借着老板对我的信任,凭借着“解放”自己的决心和勇气,我开始大干了起来。于是我准备了两箱子方便面,将自己封闭起来,花了1个月的时间,将生产计划的程序做了出来。将具体工作移交以后的日子,是我最快乐的日子。今天到这个部门看看,明天到那个部门转转,朋友结识了不少。汤司令就是我在那时候结识的。 其实,汤司令是做财务的,我早就知道他,可我们还不是很熟...
心情故事 | 2006-09-27 07:30 | 阅读 3097 次 | 评论 0 条

33选6

******C33选6 (C)Copyright 2006-2006 Tiger5392***SET TALK OFFDIMENSION acCaipiao(6)PRIVATE acCaipiao,cText,nCnt,lOk,JacCaipiao=[00]cText=[]nCnt=1DO WHILE nCnt<=6 nRand=PADL(INT(RAND()*33+1),2,"0") lOk=.T. FOR J=1 TO nCnt IF acCaipiao(J)=nRand lOk=.F. EXIT ENDIF ENDFOR IF lOk ...
VFP程序 | 2006-09-25 06:47 | 阅读 2981 次 | 评论 0 条

产生随机字母数字组合

******随机生成字母数字组合 (C)Copyright 2006-2006 Tiger5392***PARAMETERS nNumPRIVATE nNum,cText,nCnt,nRandnNum=IIF(TYPE("nNum")=CHR(78) AND INT(nNum)=nNum AND nNum>0,nNum,6)cText=[]FOR nCnt=1 TO nNum nRand=RAND() DO CASE CASE nRand<=10/62 cText1=CHR(48+nRand*62) CASE nRand<=36/62 cText1=CHR(65+nR...
VFP程序 | 2006-09-25 06:18 | 阅读 3158 次 | 评论 0 条

产生随机数字

******产生随机数字 (C)Copyright 2006-2006 Tiger5392***PARAMETERS nNumPRIVATE nNum,cText,nCnt,nRandnNum=IIF(TYPE("nNum")=CHR(78) AND INT(nNum)=nNum AND nNum>0,nNum,6)cText=[]FOR nCnt=1 TO nNum nRand=RAND() cText=cText+CHR(48+nRand*10)ENDFORRETURN cText
VFP程序 | 2006-09-25 06:06 | 阅读 1646 次 | 评论 0 条

产生随机字母

******产生随机字母 (C)Copyright 2006-2006 Tiger5392***PARAMETERS nNumPRIVATE nNum,cText,nCnt,nRandnNum=IIF(TYPE("nNum")=CHR(78) AND INT(nNum)=nNum AND nNum>0,nNum,6)cText=[]FOR nCnt=1 TO nNum nRand=RAND() cText=cText+IIF(nRand<=0.5,CHR(65+nRand*52),CHR(97+(nRand-0.5)*52))ENDFORRETURN cText
VFP程序 | 2006-09-25 06:01 | 阅读 1414 次 | 评论 0 条

用VFP设计计算器(2)

***************************************************-- Form: form1 (计算器2.scx)*-- 父类: form*-- 基类: form*-- 作者: Tiger5392 来自www.bc-cn.net中国编程论坛(C)Copyright2006-2006DEFINE CLASS form1 AS form Top = 0 Left = 0 Height = 278 Width = 405 DoCreate = .T. Caption = "Form1" Name = "Form1" ADD OBJECT te...
VFP程序 | 2006-09-23 09:36 | 阅读 3464 次 | 评论 0 条

用VFP判断字符串是否为回文(1)

* 回文 (C)Copyright 2006-2006 By Tiger5392* 用法* ?回文(cExpress)* 参数* cExpress: 字符型常量、变量、函数、表达式* 返回值* 一个数值* 数值 含义* 0 是一个空串* 1 是单字节回文,是双字节回文* 2 是单字节回文,不是双字节回文* 3 不是单字节回文,是双字节回文* 4 不是单字节回文,不是双字节回文* 有关概念* 单字节回文:一个字符串,...
VFP程序 | 2006-09-16 06:05 | 阅读 2351 次 | 评论 0 条

由DBF文件导出XLS文件和由XLS文件导入DBF文件

*THISFORM.INIT()*初始化设置**新建一个表单后保存。*在该表单里,添加*2个标签LABEL1和LABEL2;*2个文本框TEXT1和TEXT2;*4个命令按钮COMMAND1-COMMAND4;*1个表格GRID1*SET TALK OFFSET SAFETY OFFPUBLIC LOKLOK=.F.*设置FORM1的属性THISFORM.WIDTH=480THISFORM.HEIGHT=317THISFORM.MINWIDTH=480THISFORM.MINHEIGHT=317THISFORM.CAPTION="由DBF导出和导入XLS (C)Copyright 200...
VFP程序 | 2006-09-12 07:26 | 阅读 5863 次 | 评论 0 条

VFP的查询(2)之一个查询示例

关于查询的一个示例 Tiger5392 (C)Copyright 2006-2006(1)新建一个表单,添加你需要的标签、文本框、命令按钮组等。还要添加一个过程TEXTREFRESH。假设其中TEXT7是你要输入查询的内容。(2)THISFORM.INIT里写PUBLIC MMCLOSE ALLIF FILE("你的表.DBF") USE 你的表.DBFELSE *CREATE TABLE 你的表 (你的字段名......ENDIFTHISFORM.TEXT1.INPUTMASK="XXXXXXXXX" &amp;&amp;根据你的第一个字段的要求设定*其他文本框,包括TEXT7在...
VFP程序 | 2006-09-06 08:41 | 阅读 2090 次 | 评论 0 条

用VFP验证哥德巴赫猜想

**验证哥德巴赫猜想 BY Tiger5392 (C)2006-2006** 哥德巴赫猜想是世界近代三大数学难题之一。*1742年,哥德巴赫在教学中发现,*每个不小于6的偶数都是两个素数(只能被和它本身整除的数)之和,*如6=3+3,12=5+7等等。* 当年,哥德巴赫写信给当时的大数学家欧拉,提出了以下的猜想:*  (a)任何一个≥6之偶数,都可以表示成两个奇质数之和。*  (b)任何一个≥9之奇数,都可以表示成三个奇质数之和。*这就是著名的哥德巴赫猜想。* 目前最佳的结果是中国数学家陈景润于1966年证明的,称为陈氏定理(ChensTheorem)。*“任何充分大...
VFP程序 | 2006-09-01 17:03 | 阅读 2942 次 | 评论 0 条

24点游戏

我知道VFP有一个函数TYPE()能判断某个变量或表达式的数据类型,也可以判断该变量或表达式计算的结果的数据类型,因此问题的关键是如何生成一个表达式,判断它的值是不是数值型,其值是不是24就可以了。比如4个1位数1、2、3、4。如果生成的表达式没有括号的话,这样的表达式是形如1+2+3+4的表达式,其中1、2、3、4的位置可互换;三个加号可换成任意运算符号(+、-、*、/)。如果在表达式中只允许加1对括号的话,可以生成的表达式形式更多,如(1+2)+3+4、1+(2+3)+4、1+2+(3+4)、(1+2+3)+4、1+(2+3+4)等。如果在表达式中允许有2对括号的话,则可生成的表达式...
VFP程序 | 2006-09-01 11:54 | 阅读 2294 次 | 评论 0 条

双胞胎数问题

****** TN V1.00 BY Tiger5392****** 用法:?TN(nExpr) &amp;&amp;判断nExpr和nExpr+2是否为双胞胎数*** 参数:nExpr 为一素数,若nExpr+2也为素数,则称nExpr和nExpr+2为一对双胞胎数***PARAMETERS nNumPRIVATE nNum,nNum1,cNum,nCnt1,nCnt2,lOkSET TALK OFFIF TYPE([nNum])!=CHR(78) RETURN [没有参数或参数不为数值]ENDIFIF INT(nNum)!=nNum OR nNum<2 RETURN [...
VFP程序 | 2006-08-26 08:28 | 阅读 1871 次 | 评论 0 条

超级素数问题(1)

****** FUNCTION SP V1.00 (C)Copyright By Tiger5392****** 一个素数,依次从个位数开始去掉一位,两位,。。。所得的各数仍然是素数,称为超级素数。***本程序就是用来判断一个数是不是超级素数。****** 用法:?SP(nExpr)*** 参数:nExpr为数值型数据,它为大于1的整数。*** 返回:若为超级素数则返回逻辑真(.T.);否则返回逻辑假(.F.)。***PARAMETERS nNumPRIVATE nNum,nNum1,cNum,nCnt1,nCnt2,lOkSET TALK OFFIF TYPE...
VFP程序 | 2006-08-26 08:12 | 阅读 3485 次 | 评论 0 条
浏览119155次