MAC1=6465911134 MAC2=5911135911 string:='23121023617800000000051204512110389840000000110120' //MAC1=5236179902 //MAC2=4893524771 //string:='15834926375283586900' runmac1:=mac1 runmac2:=mac2 macpos:=1 //Áß°£¿¡¼­ °èÁÂ¿Í ±Ý¾×À¸·Î °è¼Ó ·çƾ µ¹¸°´Ù.25 byte???? maccheck(@string,@runmac1,@runmac2) //¿©±îÁö //Ȥ½Ã³ª µ¥ÀÌŸ°¡ ³²¾ÒÀ¸¸é ¸¶¹«¸® if len(string)>0 string:=left(string+"0000000000",10) maccheck(@string,@runmac1,@runmac2) endif ? fillzero(under10(runmac1+runmac2),10) procedure maccheck(supstr,runmac1,runmac2) do while len(supstr)>=10 st:=left(supstr,10) stv:=val(st) //? supstr,"====",macpos //? "value ",stv,stv //? "mac1,mac2",under10(runmac1),under10(runmac2) stv1:=under10(runmac1+stv) stv2:=under10(runmac2+stv) //? "stv1,stv2",stv1,stv2 stv3:=shiftstring(stv1,mac2,macpos) stv4:=shiftstring(stv2,mac1,macpos) //? "stv3,stv4",stv3,stv4 stv5:=under10(stv1+stv3) stv6:=under10(stv2+stv4) //? "stv5,stv6",stv5,stv6 runmac1:=stv5 runmac2:=stv6 supstr:=substr(supstr,11) macpos++ if macpos>11 ;macpos:=1;endif enddo return procedure under10(v) return val(right(fillzero(v,10),10)) procedure shiftstring(v1,v2,pos) local sc:=10-val(substr(fillzero(v2,10),pos,1)) v1s:=fillzero(v1,10) v1s:=v1s+left(v1s,sc) v1s:=right(v1s,10) return val(v1s) FUNCTION FILLZERO(nsour,ncoun) local csour csour:=alltrim(str(nsour)) if len(csour)>=ncoun;return csour;endif nsour:=if(len(csour)>=ncoun,substr(csour,1,ncoun),replicate('0',ncoun-len(csour))+csour) return nsour