Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [vb6] problemi array

  1. #1

    [vb6] problemi array

    Ciao a tutti... ho dei problemi con VB6 (che tralaltro poco digerisco)
    Ho il seguente codice che non funzia:
    codice:
     Dim codice, descr, um, qta, note As Variant
     Dim tmp2, tmp1 As Variant
     tmp1 = Split(dati, "§")
    
     For i = LBound(tmp1) To UBound(tmp1) - 1
      tmp2 = Split(tmp1(i), "¤")
      codice(i) = tmp2(0)
      descr(i) = tmp2(1)
      um(i) = tmp2(2)
      qta(i) = tmp2(3)
      note(i) = tmp2(4)
     Next
    dove la stringa dati è una successione di caratteri divisi da "¤" e da "§" in questa forma:

    a¤a¤a¤a¤a§b¤b¤b¤b¤b§c¤c¤c¤c¤c

    Sicuramente sto facendo un errore di grammatica (io il VB lo conosco poco!)
    Ciao
    Rino

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da rinosan_76
    Ho il seguente codice che non funzia [...]
    Cosa vuol dire "non funzia"? Ottieni un risultato diverso da quello sperato? Ottieni un errore?

    Dovresti cercare di essere più preciso nella formulazione della tua domanda scrivendo più informazioni possibili.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    mi da errore sulla riga codice(i)=tmp2(0)
    Sicuramente non sono in grado di dimensionare un Array nel modo corretto... ma i manuali che ho letto mi fanno tutti lo stesso esempio (semplice), ma che con il mio problema non va!

  4. #4
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao, l'errore lo da in quanto non hai indicato che la variabile codice (e le altre) è un vettore.
    anche se non è il massimo dell'ottimizzazione, modifica in questa maniera:
    codice:
     Dim idxMax as long
     Dim codice() as string
     Dim descr() as string
     Dim um() as string
     Dim qta() as string
     Dim note() As string
    
     Dim tmp2, tmp1 As Variant
     tmp1 = Split(dati, "§")
     
     idxMax=UBound(tmp1)
     Redim codice(idxMax)
     Redim descr(idxMax)
     Redim um(idxMax)
     Redim qta(idxMax)
     Redim note(idxMax)
     
    For i = LBound(tmp1) To UBound(tmp1) - 1
      tmp2 = Split(tmp1(i), "¤")
      codice(i) = tmp2(0)
      descr(i) = tmp2(1)
      um(i) = tmp2(2)
      qta(i) = tmp2(3)
      note(i) = tmp2(4)
    Next
    Jupy

  5. #5
    Grazie... prima avevo anche provato a dimensionare l'array, ma non riuscivo a far funzionare il redim!

  6. #6
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    Originariamente inviato da Jupy64
    Ciao, l'errore lo da in quanto non hai indicato che la variabile codice (e le altre) è un vettore.
    anche se non è il massimo dell'ottimizzazione, modifica in questa maniera:
    codice:
     Dim idxMax as long
     Dim codice() as string
     Dim descr() as string
     Dim um() as string
     Dim qta() as string
     Dim note() As string
    
     Dim tmp2, tmp1 As Variant
     tmp1 = Split(dati, "§")
     
     idxMax=UBound(tmp1)
     Redim codice(idxMax)
     Redim descr(idxMax)
     Redim um(idxMax)
     Redim qta(idxMax)
     Redim note(idxMax)
     
    For i = LBound(tmp1) To UBound(tmp1) - 1
      tmp2 = Split(tmp1(i), "¤")
      codice(i) = tmp2(0)
      descr(i) = tmp2(1)
      um(i) = tmp2(2)
      qta(i) = tmp2(3)
      note(i) = tmp2(4)
    Next
    con la stringa "a¤a¤a¤a¤a§b¤b¤b¤b¤b§c¤c¤c¤c¤c" xchè la "c" nn viene messa nell'array ? è normale ?

  7. #7
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    eh si, è normale che rimane fuori, in quanto il ciclo for non è corretto (avendolo ripreso direttamente da quello che aveva postato rinosan)
    sbagliato
    codice:
    For i = LBound(tmp1) To UBound(tmp1) - 1
    corretto
    codice:
    For i = LBound(tmp1) To UBound(tmp1)
    Jupy

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.