ezzetabi Posted July 19, 2005 Share Posted July 19, 2005 expandcollapse popup$sT = 'If they make mistakes, lets follow them! (Remainder lesson)' $sPass = 'a pass!' MsgBox(16,'', _Rot($st, $sPass, 0)) MsgBox(16,'', _Rot($st, $sPass, 1)) Func _Rot(ByRef $sInput, $sPass, $bMode) Local $sChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz' Local $iNofC = StringLen($sChars) Local $c, $iPos, $sChr Local $ipl = StringLen($sPass) Local $isl = StringLen($sInput) Local $aiPass[$ipl] For $c = 0 to $ipl - 1 $aiPass[$c] = Asc(StringMid($sPass, $c + 1, 1)) + 17 Next $sPass = 0 For $c = 1 to $isl $sChr = StringMid($sInput, $c, 1) $iPos = StringInStr($sChars, $sChr, 1) If $iPos > 0 Then If $bMode = 0 Then $sChr = StringMid($sChars, _Mod($aiPass[Mod($c - 1, $ipl)] + $iPos, $iNofC), 1) Else $sChr = StringMid($sChars, _Mod(- $aiPass[Mod($c - 1, $ipl)] + $iPos, $iNofC), 1) EndIf EndIf $sInput = StringLeft($sInput, $c - 1) & $sChr & StringTrimLeft($sInput, $c) Next Return $sInput EndFunc Func _Mod($iDividend, $iDivisor) Local $iMod If $iDivisor <> 0 Then If $iDividend < 0 Then $iDividend = $iDividend * -1 $iMod = Mod($iDividend, $iDivisor) if $iMod = 0 Then Return $iMod Else Return $iDivisor - $iMod EndIf EndIf Return Mod($iDividend, $iDivisor) Else SetError(1) Return '-1.#IND' EndIf EndFunc Exit Link to comment Share on other sites More sharing options...
busysignal Posted July 22, 2005 Share Posted July 22, 2005 Nice code, works great. Cheers.. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now