Some strange behavior with this script modified just a bit. Riddle me this...

This returns 8 chars as specified:

code:
udfPWGen(8,"vfewgc000v") ?

Function udfPWGen($iLength,Optional $sSeed)
Dim $sTerminal,$sNonTerminal,$iIndex,$iSeed

$sTerminal=$sTerminal+"BCDFGHJKLMNPQRSTVWXYZ"
$sTerminal=$sTerminal+"bcdfghjklmnpqrstvwxyz"
$sNonTerminal="0123456789"
For $iIndex=1 To Len($sSeed)
$iSeed=$iSeed+Asc(SubStr($sSeed,$iIndex,1))
Next
Srnd($iSeed*@monthno)
For $iIndex=1 to $iLength
$sSelectFrom=IIF($iIndex=1 OR $iIndex=$iLength,$sTerminal,$sTerminal+$sNonTerminal)
$udfPWGen=$udfPWGEn+Cstr(Substr($sSelectFrom,(Rnd(Len($sSelectFrom))+1),1))
Next
EndFunction

This also returns 8 even though I specified 9

code:
udfPWGen(9,"vfewgc000v") ?

Function udfPWGen($iLength,Optional $sSeed)
Dim $sTerminal,$sNonTerminal,$iIndex,$iSeed

$sTerminal=$sTerminal+"BCDFGHJKLMNPQRSTVWXYZ"
$sTerminal=$sTerminal+"bcdfghjklmnpqrstvwxyz"
$sNonTerminal="0123456789"
For $iIndex=1 To Len($sSeed)
$iSeed=$iSeed+Asc(SubStr($sSeed,$iIndex,1))
Next
Srnd($iSeed*@monthno)
For $iIndex=1 to $iLength
$sSelectFrom=IIF($iIndex=1 OR $iIndex=$iLength,$sTerminal,$sTerminal+$sNonTerminal)
$udfPWGen=$udfPWGEn+Cstr(Substr($sSelectFrom,(Rnd(Len($sSelectFrom))+1),1))
Next
EndFunction

This returns only 9 even though 10 specified.
code:
udfPWGen(10,"vfewgc000v") ?

Function udfPWGen($iLength,Optional $sSeed)
Dim $sTerminal,$sNonTerminal,$iIndex,$iSeed

$sTerminal=$sTerminal+"BCDFGHJKLMNPQRSTVWXYZ"
$sTerminal=$sTerminal+"bcdfghjklmnpqrstvwxyz"
$sNonTerminal="0123456789"
For $iIndex=1 To Len($sSeed)
$iSeed=$iSeed+Asc(SubStr($sSeed,$iIndex,1))
Next
Srnd($iSeed*@monthno)
For $iIndex=1 to $iLength
$sSelectFrom=IIF($iIndex=1 OR $iIndex=$iLength,$sTerminal,$sTerminal+$sNonTerminal)
$udfPWGen=$udfPWGEn+Cstr(Substr($sSelectFrom,(Rnd(Len($sSelectFrom))+1),1))
Next
EndFunction

I cannot replicate the error with any other input besides 'vfewgc000v', but this input certainly doesn't work right.
_________________________
-Jim

...the sort of general malaise that only the genius possess and the insane lament.