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

    Problema con gli array...

    Ciao ragazzi, mi date una mano per questo errore?

    Ho fatto una funzione che prende da un database il valore del campo categoria strutturato in questo modo: "staff;internet;" e inserisce tramite split ogni parola in un array.
    Da questo array poi elimino i dati simili e nel nuovo array inserisco la voce e il numero di elementi trovati,separato da ";".

    Ecco il codice:

    n = 0
    Do while NOT ecRS.EOF
    campoCategoria = Split(ecRS("categoria"),";")
    For i = 0 To Ubound(campoCategoria)
    83==> elencoCategoria(i + n) = campoCategoria(i)
    Next
    n = n + i
    ecRS.MoveNext
    Loop
    x = 0
    For i = 0 To Ubound(elencoCategoria)
    If Len(elencoCategoria(i)) > 0 Then
    categoria(x) = elencoCategoria(i) & ";1"
    x = x + 1
    For z = (i + 1) to Ubound(elencoCategoria)
    valCategoria = Split(categoria(x),";")
    If valCategoria(0) = elencoCategoria(z) Then
    newVal = valCategoria(1) + 1
    categoria(x) = valCategoria(0) & ";" & valCategoria(1)
    elencoCategoria(z) = ""
    End If
    Next
    End If
    Next

    L'errore riscontrato è:

    Microsoft VBScript runtime error '800a000d'

    Type mismatch: 'elencoCategoria'

    /include/funzioni.asp, line 83

    Vuol dire che devo dichiarare l'array?Ma se non so quant'è la dimensione finale come faccio?

    GRAZIE
    Webmaster DylanBlog.com

  2. #2
    ecciertamiente che la devi dichiarare. se non sai di quanti elementi hai bisogno, all'inizio del programma la dichiari com Redim Array(0), poi via via la ridimensioni con ReDim Preserve Array(quantimeneservono). that easy!

  3. #3
    Grazie,ma come faccio con lo split visto che non so quanto sarà la dimensione finale?
    Webmaster DylanBlog.com

  4. #4
    che te frega? la split crea da sé l'array di risulta

  5. #5
    Ciao, chiedo scusa, se ho capito bene il discorso non può essere del tutto evitato? utilizzando una group by e un count nella query sql ?

    Se ho capito male, perdonatemi

  6. #6
    Originariamente inviato da varrilaro
    Ciao, chiedo scusa, se ho capito bene il discorso non può essere del tutto evitato? utilizzando una group by e un count nella query sql ?

    Se ho capito male, perdonatemi
    La soluzione proposta da te è l'ideale se dovessi prendere tutto il campo, ma come hai potuto leggere dal codice, il mio campo è composto da una stringa con più parole separate da ";" quindi io confrontando i campi con questo metodo, conto solo le stringhe uguali e non le parole uguali...
    Webmaster DylanBlog.com

  7. #7
    ah ecco,
    io pensavo avessi una singola parola nel campo .... ok allora visto che ha risolto ti saluto.

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