Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    493

    definire la dimensione di un array con una variabile

    ciao
    ho definito un array con la dimensione definita in modo statico

    dim arr(20)

    e funziona tutto

    volevo provare a fare questo:
    definire un array in modo dinamico ovvero inserendo una variabile contenente un intero

    dim arr(num)

    num contiene il valore 20

    quando vado ad eseguire la pagina il browser mi restituisce questo errore
    Microsoft VBScript compilation error '800a0402'

    Expected integer constant
    el2.asp, line 60

    dim arr(numemail)
    --------^

    non si può fare??

    grazie

  2. #2
    Redim arr(numemail)

    that easy!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    493
    grazie!

    un alrta cosa se possibile.

    se io crea un array(10,10) nella forma (m,n)

    significa che creo una matrice 10x2? (10 righe e 2 colonne)

    quindi posso mettere in m i dati di un campo del database e in n un altro campo?

    come faccio a popolare l'array inserrendo in ogni riga ad m un dato del campo1 e a n del campo2?

    grazieee

  4. #4
    la redim m,n si può fare. per il resto non ho capito

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    493
    intanto fatemi capire se so minimamente usare gli array

    per inserirli in un array monodimensionale array(num)
    ho fatto così

    codice:
      While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 
    dim nome
    nome=((Recordset1.Fields.Item("nome").Value))
    
    array(Repeat1__numRows*-1)=(nome)
     
      Repeat1__index=Repeat1__index+1
      Repeat1__numRows=Repeat1__numRows-1
      Recordset1.MoveNext()
    Wend
    %>
    >
    e poi per stampare il contenuto

    codice:
    <% for ii = 0 to Ubound(array) %>
    <%= array(ii) &";" %>
    <% next %>
    ora veniamo al dunque

    in un database ho la tabella persone

    devo prendere ad esempio i dati dal campo mail e nome

    mettiamo che voglia usare un array fatto come detto prima array(m, n)

    e voglia inserire i mail in "m" e i nomi in "n"

    come faccio a mettere i valori nell'array?

    e successivamente comme faccio a prelevarli?

    ho provato così ad inserire i dato ma non funziona dà errore alla riga rossa

    codice:
    numemail=CLng(numemail)
     dim array()
     Redim array(numemail, numemail) 
    
     While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF)) 
    dim mail, nomeutente
    mail=((Recordset1.Fields.Item("email").Value))
    nomeutente=(Recordset1.Fields.Item("nomeutente").Value)
     
     array(Repeat1__numRows*-1, Repeat1__numRows*-1)=(mail, nomeutente) 
     
      Repeat1__index=Repeat1__index+1
      Repeat1__numRows=Repeat1__numRows-1
      Recordset1.MoveNext()
    Wend
    %>

  6. #6
    Ciao. se dimensioni un array (10,10) hai 10 righe e dieci colonne, per fare ciò che vuoi fare tu devi dimensionare (10,2) così hai 10 righe e due colonne e poi assegni i valori così :

    <%
    numemail=CLng(numemail)
    dim array()
    Redim array(numemail, 2)

    While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))
    dim mail, nomeutente
    mail=((Recordset1.Fields.Item("email").Value))
    nomeutente=(Recordset1.Fields.Item("nomeutente").V alue)

    array(Repeat1__numRows*-1, 1)=mail
    array(Repeat1__numRows*-1, 2)=nomeutente

    Repeat1__index=Repeat1__index+1
    Repeat1__numRows=Repeat1__numRows-1
    Recordset1.MoveNext()
    Wend
    %>


    Ciao

    Fabio

  7. #7
    opppssss....così...
    le posizioni dell'array vanno da 0 a x ...quindi un array con la seconda dimensione a 2 avrà come posizioni 0 ed 1

    <%
    numemail=CLng(numemail)
    dim array()
    Redim array(numemail, 2)

    While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))
    dim mail, nomeutente
    mail=((Recordset1.Fields.Item("email").Value))
    nomeutente=(Recordset1.Fields.Item("nomeutente").V alue)

    array(Repeat1__numRows*-1, 0)=mail
    array(Repeat1__numRows*-1, 1)=nomeutente

    Repeat1__index=Repeat1__index+1
    Repeat1__numRows=Repeat1__numRows-1
    Recordset1.MoveNext()
    Wend
    %>


    Ciao

    Fabio

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    493
    grazie fabio!

    ok adesso su questo ci sono, l'ho appena provato a creare e a far stampare i dati e funziona perfettamente.

    avrei però un'altra richiesta e un chiarimento ulteriore.

    se io volessi inserire tutto in un array(10)
    potrei fare in questo modo
    dim array(10)

    While ((Repeat1__numRows <> 0) AND (NOT Recordset1.EOF))
    dim mail, nomeutente
    mail=((Recordset1.Fields.Item("email").Value))
    nomeutente=(Recordset1.Fields.Item("nomeutente").V alue)

    array(Repeat1__numRows*-1)=(mail&"|"&nomeutente)

    Repeat1__index=Repeat1__index+1
    Repeat1__numRows=Repeat1__numRows-1
    Recordset1.MoveNext()
    Wend


    in questo modo ho tutto nell'array

    poi come faccio a farlo stampare?

    immagino debba usare lo split
    <%
    dim diviso
    for ii = 0 to Ubound(array)
    diviso=split(array(ii))
    response.write(diviso(0)) &"; " %>
    <% next %>
    qualcosa del genere?


    conviene a livello di risorse usare un array(10,2)

    o uno array(10)
    e poi usare lo split?

    graziee

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma tu cosa devi fare con l'array?
    Metterci dentro i record estratti dalla query? In questo caso potresti usare la getRows() che in automatico, senza lavorare con gli indici, ti crea da sé l'array a due dimensioni (record/campi).

    Roby

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    493
    Originariamente inviato da Roby_72
    Ma tu cosa devi fare con l'array?
    Metterci dentro i record estratti dalla query? In questo caso potresti usare la getRows() che in automatico, senza lavorare con gli indici, ti crea da sé l'array a due dimensioni (record/campi).

    Roby
    si sto facendo questo e grazie all'aiuto dei post precedenti ci sono riuscito, ora stavo cercando di capire quale è meno oneroso in termini di sovraccarico e quale è conveniente.

    ma il getRows prende tutti i campi?
    quindi se ho una tabella con 100 righe e 5 campi mi restituisce un array (100,5)?

    e come faccio poi a stampare a video con getrow()?

    grazie roby

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 © 2025 vBulletin Solutions, Inc. All rights reserved.