Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Scorrere un array asp in maniera Random

    Salve,
    ho una lista di elementi che vorrei visualizzare in maniera random.
    Esempio:
    data questa lista
    banner1
    banner2
    banner3
    banner4
    banner5

    ad ogni apertura della pagina asp, la lista deve essere visualizzata in maniera random
    banner4
    banner1
    banner3
    banner2
    banner5

    ho trovato questo script in rete, ma non funziona mi da errore sulla riga "If InArray(RndArr, item) = FALSE Then"

    __________________________________________________ _____
    <% Function array_rand(MiaArray, Quanti)
    ' Verifico che MiaArray sia una array
    ' In caso contrario restituisco una array vuota ed esco
    If IsArray(MiaArray) = False Then
    array_rand = Array()
    Exit Function
    ' Controllo che Quanti sia un numero
    ' In caso contrario restituisco una array vuota ed esco
    ElseIf IsNumeric(Quanti) = False Then
    array_rand = Array()
    Exit Function
    ' Se Quanti è maggiore del numero di elementi della mia array imposto
    ' su 1 il numero di elementi da restituire
    ElseIf CInt(Quanti) > (UBound(MiaArray) + 1) Then
    Quanti = 1
    End If
    ' Definisco un po' di variabili interne
    Dim i, RndArr, item
    i = 0
    ' Assegno alla nuova array (quella contenente i risultati random) il
    ' numero di elementi passati dalla funzione
    ReDim RndArr(CInt(Quanti))
    ' Lancio il Randomize
    Randomize Timer
    ' Faccio un ciclo fino al riempimento della nuova array
    Do While NOT i = CInt(quanti)
    ' Estraggo un elemento a caso
    item = MiaArray(Int(Rnd * (UBound(MiaArray) + 1)))
    ' Verifico che l'elemento non sia già presente nella nuova array
    If InArray(RndArr, item) = FALSE Then
    ' Aggiungo alla nuova array ed incremento il contatore
    RndArr(i) = item
    i = i + 1
    End If
    Loop
    ' Restituisco la nuova array
    array_rand = RndArr
    End Function


    Dim amici
    amici = Array("Luca","Claudio","Max","Diego","Francesco"," Michele","Daniele")


    ' Creo una nuova array contenente 2 soli amici estratti a caso dalla precedente
    ' La nostra funzione array_rand richiede 2 parametri:
    ' 1) l'array su cui operare
    ' 2) Il numero di elementi da estrarre randomicamente
    Dim newamici
    newamici = array_rand(amici, 2)


    %>
    <%
    for Each amici In newamici
    Response.Write amici & "<br/>"
    Next
    %>

  2. #2
    ho risolto...
    mancava questa funzione....

    Function InArray(MiaArray, CosaCercare)
    Dim i
    InArray = False
    ' Verifico che MiaArray sia effettivamente un vettore.
    ' Contestualmente mi assicuro che CosaCercare non sia vuoto
    If IsArray(MiaArray) And CosaCercare <> "" Then
    ' Faccio un ciclo per la lunghezza della nostra array
    For i = 0 To UBound(MiaArray)
    ' Verifico i vari elementi dell'array per cercare corrispondenza con CosaCercare
    If LCase(CosaCercare) = LCase(MiaArray(i)) Then
    ' Se trovo corrispondenza setto InArray come Vero ed esco dal ciclo
    InArray = True
    Exit For
    End If
    Next
    End If
    End Function

  3. #3
    La lista viene stampata random, tutto ok,
    ma se volessi anche stamparne l'indice? nell'Array?

  4. #4

  5. #5
    Quote Originariamente inviata da optime Visualizza il messaggio
    eh?
    devo stampare generata in maniera random dall'Array con accanto la posizione nell'Array stesso
    amici = Array("Luca","Claudio","Max","Diego","Francesco"," Michele","Daniele")

    lista stampata

    Claudio pos1
    Luca pos0
    Francesco pos4
    .....

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.