Med följande kod genererar PHP ett slumptal som ibland är 9 tecken, 8 tecken eller 10 tecken <code> Njae...inte riktigt. Den slumpar nr, men alla är 13 tecken. I PHP-scriptet så generar den 8, 9 eller 10 tecken. Jaha, jag läste fel och trodde att du ville ha 13 tecken. Testan den här: Det tar sig! Men om jag vill ha det slumpat 8 eller 9 eller 10 tecken? Nu går den mellan 9 och 10 tecken. Den där koden ska slumpa fram mellan 8 och 10 tecken.Slumpa nummer ASP vs PHP
<?
$nr_tal = $nr = rand(1,10000000000000);
$randNr = $nr_tal;
echo $randNr;
?>
Hur ska jag skriva om jag vill ha samma variant i ASP. Har följande kod, men den genererar enbart 13 tecken.
<%
UpperBound = 10000000000000
LowerBound = 1
Randomize
randomNr = Int(Rnd * UpperBound) + LowerBound
Response.Write (randomNr)
%>
Tack på förhand!Sv: Slumpa nummer ASP vs PHP
UpperBound = 999999999999
LowerBound = 1000000000000
Randomize
randomNr = Int(Rnd * UpperBound) + LowerBound
Response.Write (randomNr)
</code>
Den koden borde lösa ditt problem.
ThomasSv:Slumpa nummer ASP vs PHP
/DanielSv: Slumpa nummer ASP vs PHP
<code>
UpperBound = 9989999999
LowerBound = 10000000
Randomize
randomNr = Int(Rnd * UpperBound) + LowerBound
Response.Write (randomNr)
</code>
ThomasSv:Slumpa nummer ASP vs PHP
Sv: Slumpa nummer ASP vs PHP
Int(Rnd * X) tar fram ett nummer mellan 0 och X-1, i ditt fall mellan 0 och 9989999998.
Sen lägger man på LowerBound, dvs 10000000.
Som minst blir det alltså 0 + 10000000 = 10000000, 8 tecken.
Som mest blir det 9989999998 + 10000000 = 9999999998, 10 tecken.
En liten justering behövs visst, UpperBound ska vara 9990000000. Men det är bara en detalj-justering, båda versionerna ger 8 till 10 tecken.
Tänk på att det finns många fler möjligheter att få 9 och 10 tecken än 8 tecken. Vill du att det ska vara lika stor chans att få 8, 9 och 10 tecken så måste du nog slumpa fram antalet tecken separat med tex Int(Rnd * 2) där 0 = 8 tecken, 1 = 9 tecken och 2 = 10 tecken och sen slumpa fram rätt antal tecken.
Thomas