求高手帮我下,下面这段VFP代码是什么意思?p_mm=allt(str( year(date())*dow(date()) +month(date())*dow(date())+day(date())+week(date()) ) ) +allt(str( int(thisform.text1.value))) &&+"msq"cString=""FOR i=1 TO LEN(ALLTRIM(p_mm))cCHR

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/29 20:28:23
求高手帮我下,下面这段VFP代码是什么意思?p_mm=allt(str(  year(date())*dow(date()) +month(date())*dow(date())+day(date())+week(date())   ) )  +allt(str( int(thisform.text1.value)))    &&+

求高手帮我下,下面这段VFP代码是什么意思?p_mm=allt(str( year(date())*dow(date()) +month(date())*dow(date())+day(date())+week(date()) ) ) +allt(str( int(thisform.text1.value))) &&+"msq"cString=""FOR i=1 TO LEN(ALLTRIM(p_mm))cCHR
求高手帮我下,下面这段VFP代码是什么意思?
p_mm=allt(str( year(date())*dow(date()) +month(date())*dow(date())+day(date())+week(date()) ) ) +allt(str( int(thisform.text1.value))) &&+"msq"
cString=""
FOR i=1 TO LEN(ALLTRIM(p_mm))
cCHR=val((subs(allt(p_mm),i,1)))+dow(date())
cString=cString+allt(stR(cChr))
endfor
p_mm=cString
cString=""
FOR i=1 TO LEN(ALLTRIM(p_mm)) &&将所输入密码转换为加密格式
cCHR=val((subs(allt(p_mm),i,1)))
DO case
CASE cchr=1
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))*i
cString=cString+allt(stR(cChr))
CASE cchr=2
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))+week(date())
cString=cString+allt(stR(cChr))
CASE cchr=3
cChr=int(val(SUBSTR(ALLTRIM(p_mm),i,1))/3)
cString=cString+allt(stR(cChr))
CASE cchr=4
cChr=int(val(SUBSTR(ALLTRIM(p_mm),i,1))*4)
cString=cString+allt(stR(cChr))
CASE cchr=5
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))+day(date())
cString=cString+allt(stR(cChr))
CASE cchr=6
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))+dow(date())
cString=cString+allt(stR(cChr))
CASE cchr=7
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))+3
cString=cString+allt(stR(cChr))
CASE cchr=8
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))+i
cString=cString+allt(stR(cChr))
CASE cchr=9
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))*2
cString=cString+allt(stR(cChr))
CASE cchr=0
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))+month(date())
cString=cString+allt(stR(cChr))
OTHERWISE
cChr="M"
cString=cString+cChr
ENDCASE
ENDFOR
if dow(date())>3
p_zcm=subs(cstring,3,10)
else
p_zcm=subs(cstring,4,10)
endif

求高手帮我下,下面这段VFP代码是什么意思?p_mm=allt(str( year(date())*dow(date()) +month(date())*dow(date())+day(date())+week(date()) ) ) +allt(str( int(thisform.text1.value))) &&+"msq"cString=""FOR i=1 TO LEN(ALLTRIM(p_mm))cCHR
这个程序搞得太复杂了,没必要.简单介绍一下:
1首先搞清楚一些函数 date():当前日期;year()求年份;dow():星期,星期日为1,星期一等于2;
month()月份;day()几号,3月15日等于15;week():日期中第几周,比如4月2日等于14.
变量p_mm将年、月、日、星期等进行四则运算,得到一个字符型的数字变量.
2
代码 cString=""
FOR i=1 TO LEN(ALLTRIM(p_mm))
cCHR=val((subs(allt(p_mm),i,1)))+dow(date())
cString=cString+allt(stR(cChr))
endfor
p_mm=cString
对p_mm每一位数加星期,又进行一次运算,比如原p_mm='123',dow(date())=3(星期四),
结果是:1+4,2+4,3+4 ='567'
3 代码:
FOR i=1 TO LEN(ALLTRIM(p_mm)) &&将所输入密码转换为加密格式
cCHR=val((subs(allt(p_mm),i,1)))
DO case
CASE cchr=1
.
ENDFOR
是对刚才密码(p_mm)分别情况再加密,假定前面的结果是p_mm='567',假定当前日期为3月15日,星期三:
CASE cchr=5
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))+day(date())
cString=cString+allt(stR(cChr))
即:cString=5+15=20
CASE cchr=6
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))+dow(date())
cString=cString+allt(stR(cChr))
即:cString=6+4=20
CASE cchr=7
cChr=val(SUBSTR(ALLTRIM(p_mm),i,1))+3
cString=cString+allt(stR(cChr))
即:cString=7+3=10
结果为cString='202010'
代码:
if dow(date())>3
p_zcm=subs(cstring,3,10)
else
p_zcm=subs(cstring,4,10)
endif
如果当前日期大于星期二(dow(date())>3),p_zcm从第三位取10位,否则从第四位取10为,比如:星期四,cstring='23451234567890123',p_zcm='4512345678'
唉,真不明白这段程序是要干什么?真累!