Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Domanda su Array

  1. #1

    Domanda su Array

    ciao,
    dopo tanto tempo scrivo nuovamente perchè non mi spiego un'errore che ho.

    Io da una particolare funzione ricevo dei dati sotto forma di object (results).
    questo object (results) non è altro un array a più dimensioni quindi lo casto in questo modo:

    ((Array)results).GetValue(dim1, dim2, dim3)

    nel caso in cui è a 3 dimensioni scorrendo l'array arrivo alla cella richiesta dell'array in questo modo:
    codice:
    for(int i=0;i<((Array)results).GetUpperBound(dim1);i++)
    ....for(int c=0;c<((Array)results).GetUpperBound(dim2);c++)
    ........for(int k=0;k<((Array)results).GetUpperBound(dim3);k++)
    ................response.write(((Array)results).GetValue(i,c,k).ToString());
    e fino a qua nessun problema.

    quando questo object (results) mi torna indietro a 2 dimensioni, attraverso il debug vedo che results è uguale a

    [0,0] = pippo
    [1,0] = pluto
    [2,0] = pippo1
    [3,0] = pluto1
    [4,0] = pippo2
    [5,0] = pluto3


    quidni facendo un
    response.write(((Array)results).GetValue(i,c).ToSt ring());

    mi aspetterei qualcosa, ma in questo caso ho l'errore di Index out of bound

    :master:

  2. #2
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Scusa, ma se è a due dimensioni,la variabile k è sempre nothing...
    Dovresti dividere le response.write, per il terzo vettore dovresti mettere un controllo che che verifichi che l'upperbound non sia inferiore alla variabile k.
    Secondo me hai già risolto, però è un modo per fare una chiacchiera.
    Ciao

  3. #3
    ehehhehe tutti la stessa cosa mi dite.

    Quando ho le due dimensioni il 3° ciclo non lo faccio quindi sono OK

    per charire faccio solo questo:

    for(int i=0;i<((Array)results).GetUpperBound(dim1);i++)
    ....for(int c=0;c<((Array)results).GetUpperBound(dim2);c++)
    ..........response.write(((Array)results).GetValue (i,c).ToString());

    facendo cosi ho sempre l'errore di Index out of bound boh? per me è il pc

  4. #4
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    B0H!!!!

    Ciao

  5. #5

  6. #6
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Meno male che a volte non succedono solo a me delle cose apparentemente inspiegabili(in genere la spiegazione poi c'è...)
    Riciao

  7. #7
    trovato l'inghippo ma non ne vengo fuori.

    mi torna indietro una sola riga della matrice

    a = ((Array)results).GetValue(0, 0)

    il valore di A è:
    [0,0] = pippo
    [1,0] = pluto
    [2,0] = pippo1
    [3,0] = pluto1
    [4,0] = pippo2
    [5,0] = pluto3

    quindi come caspita lo scorro?

    dal ADD WATCH del debug riesco a recuperare i singoli valori con questa sintatti:
    ((Array)results).GetValue(0, 0)[1,0]
    ((Array)results).GetValue(0, 0)[2,0] ecc.

    questo con l'add watch ma a livello di sintassi non riesco a trovare il modo.

    vedete l'immagine

  8. #8
    ho trovato la soluzione

    for(int i=0;i<((Array)results).GetUpperBound(dim1);i++)
    ....for(int c=0;c<((Array)results).GetUpperBound(dim2);c++)
    ..........for(int k=0;k<((Array)((Array)results).GetValue(i,c))).Len ght;k++)
    ....................response.writeArray)((Array)re sults).GetValue(i,c))).GetValue(k,0));

    vabbè magari ho dimenticato qualche parantesi però è una merdata di questo tipo.

  9. #9
    Utente di HTML.it L'avatar di Legnetto
    Registrato dal
    May 2002
    Messaggi
    1,419
    Un plauso a Daniele che si auto risolve i problemi
    Quelle sono le cose che fanno sclerare i programmatori vero?
    Ciao

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