Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Discussione: Contare elementi array

  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    Contare elementi array

    Ciao a tutti.

    Con questo estratto di codice ASP leggo un file csv, splitto per virgola la stringa che contiene i nomi delle colonne ed importo il contenuto del file csv in un db mysql:

    codice:
    strText = objFile.readLine  	
    arrText = split(strText, ",", 17)
    Sapete dirmi come faccio a contare che gli elementi ottenuti dall'array siano sempre e soltanto 17? Cioè meno di 17 o più di 17 il sistema deve bloccarsi.

    Ho provato con:

    codice:
    if uBound(arrText) = 17 then
    ...
    Ma non distingue il numero degli elementi che compongono l'array.

    Grazie

  2. #2
    che vuol dire 'non distingue'?

  3. #3
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da optime
    che vuol dire 'non distingue'?
    Mi spiego meglio con un esempio.

    Ho due file csv: uno corretto, l'altro sbagliato.

    La differenza che il file csv corretto contiene questa stringa composta da 17 elementi:

    0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16

    mentre il file csv sbagliato contiene questa stringa composta da 23 elementi:

    0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, 20,21,22

    Quando il file CSV è sbagliato, cioè contiene un numero di elementi diversi da 17, devo rifiutare il caricamento nel db mysql.

    Avevo pensato, dopo aver splittato la stringa csv per virgola, di contare gli elementi dell'array è se uguali a 17 proseguo altrimenti mi fermo.

    Ma il controllo:

    codice:
    if uBound(arrText) = 17 then
    ...
    
       else
    
          response.write uBound(arrText)
    
    end if
    sia se carico il csv corretto o sbagliato stampa sempre 16 come numero di elementi dell'array...

  4. #4
    visto che parti da 0, ubound sarà 16 per 17 elementi. sono d'accordo con te, mannaggia a chi ha inventato la posizione 0.

  5. #5
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da optime
    visto che parti da 0, ubound sarà 16 per 17 elementi. sono d'accordo con te, mannaggia a chi ha inventato la posizione 0.
    Ho corretto secondo la tua indicazione, ma in questo modo mi scarta il file csv corretto e mi importa il csv sbagliato....:

    codice:
    strText = objFile.readLine  	
    arrText = split(strText, ",", 17)
    
    if uBound(arrText) = 16 then
    ...
    
       else
    
          response.write uBound(arrText)
    
    end if

  6. #6
    perché non ti fai stampare ubound(array)?

  7. #7
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da optime
    perché non ti fai stampare ubound(array)?
    E' sempre 16 sia nel caso del file csv giusto sia nel caso del file csv sbagliato....

  8. #8
    però, bello de casa, se tu chiedi di prendere 17 elementi

    arrText = split(strText, ",", 17)

    anche quelli da 20.000 so' bboni....

  9. #9
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da optime
    però, bello de casa, se tu chiedi di prendere 17 elementi

    arrText = split(strText, ",", 17)

    anche quelli da 20.000 so' bboni....
    Non ho capito come dovrei risolvere...

  10. #10
    allora: hai due sacchi. nel primo ci sono 100 castagne, nel secondo 10.
    tu dici: aho', prendimi 10 castagne dal sacco: te le fai dare e poi le conti. quante sono? 10? (ma dai...) ok, allora è buono.

    è un ragionamento sbagliato, giusto? dov'è l'errore?

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.