Toon posts:

[ASP] Kun je een function in een sub hebben?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het lukt mij namelijk niet.
Ik probeer een random nummer te genereren. (10 cijfers)
Deze code had ik met ASPin.com gevonden...

<%
'Aftesten PersCode
Function gen_key(digits)

char_array(0) = "0"
char_array(1) = "1"
char_array(2) = "2"
char_array(3) = "3"
char_array(4) = "4"
char_array(5) = "5"
char_array(6) = "6"
char_array(7) = "7"
char_array(8) = "8"
char_array(9) = "9"
'Next we want to start the randomize statement.
Randomize
'Next we loop through all of the digits to get the output.
do while len(output) < digits
num = char_array(Int((9 - 0 + 1) * Rnd + 0))
output = output + num
loop
'Now we set our output and end the function.
gen_key = output
End Function
'And finally we write the statement for the output.
PersCode = gen_key(10)
%>

Zonder de sub werkt hij prima, maar met niet meer...
Dan geeft hij een foutmelding over de:
Function gen_key(digits)

Weten jullie waarom dit niet zou kunnen.
Ik wil namelijk het random gegenereerde nummer checken of het niet al in de database staat. Zo ja, moet tie opnieuw genereren, net zolang tot het nummer uniek is. Dus weer een sub aanroepen toch???

Verwijderd

Jep, moet gewoon kunnen...

heb je anders een foutmelding ofzo :?

  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 12:47

Basszje

Reisvaap!]

Nee da's niet mogelijk.

Een sub kan n.l. geen return waardes geven en is alleen moet bedoeld om code uit te voeren.

En dus niet om return-waardes te geven. :)

Dus je moet een function gebruiken ( maakt toch niet zoveel uit? )

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Zet de functie BUITEN je sub neer.

Maar recursie kan wel gewoon. (zichzelf aanroepen)

Echter is jouw probleem veel makkelijker op te lossen.

Je zegt zelf al dat het getal 10 cijfers moet hebben.

Waarom pak je dan niet een random getal tussen iets van 10 Cijfers en een ander 10 cijferig getal ?

zoiets als
metacode
code:
1
2
3
4
5
6
7
8
9
10
11
  waar=1
  while (waar) do begin
    getal=0;
    for t:=1 to digits do begin
    getal:=getal*10+(Int((9 - 0 + 1) * Rnd)
    end
    check of getal bestaat in database
    zo ja dan waar blijft 1
    zo nee zet waar op 0
  end
  return getal

en klaar is klara

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Op maandag 01 oktober 2001 17:35 schreef BaSSzje het volgende:
Nee da's niet mogelijk.

Een sub kan n.l. geen return waardes geven en is alleen moet bedoeld om code uit te voeren.

En dus niet om return-waardes te geven. :)

Dus je moet een function gebruiken ( maakt toch niet zoveel uit? )
kan wel via de parameters :+

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Basszje
  • Registratie: Augustus 2000
  • Laatst online: 12:47

Basszje

Reisvaap!]

Op maandag 01 oktober 2001 17:37 schreef dusty het volgende:

[..]

kan wel via de parameters :+
Om een return waarde te geven :?

( of willen wij hier ranzig gaan programmeren :) ? )

Beware of listening to the imposter; you are undone if you once forget that the fruits of the earth belong to us all, and the earth itself to nobody.

Pagina: 1