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

Discussione: [VB6] Dimensioni array

  1. #1

    [VB6]Dimensioni array

    ciao,
    vorrei capire bene come VB6 gestisce le matrici. Ad esempio, devo inserire il contenuto di un file in una matrice, ma non so quante righe conrìtiene il file..come faccio a dimensionare l'array?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    se ogni riga del file è separata da un delimitatore, esempio un carriage return, basta che leggi il file salvandolo in una stringa, e poi usi la split per l'array in questo modo (supponendo il separatore di riga sia il CR):

    Dim arrFile() As String
    arrFile() = Split(stringaFile, vbCr)
    Ans.

  3. #3
    purtroppo il file risulta troppo grosso(sono mail in realtà),ma apparte questo, mi interessava sapere se posso dichiarare una matrice senza dover dichiarare la sua dimensione con VB6

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    mi interessava sapere se posso dichiarare una matrice senza dover dichiarare la sua dimensione con VB6

    se guardi il mio esempio l'ho fatto:
    Dim arrFile() As String

    poi che vuol dire è grosso il file ? Non credo sia questo che ti impedisce una lettura completa ed assegnazione del contenuto ad una stringa.
    Ans.

  5. #5
    Originariamente inviato da lbottoni
    purtroppo il file risulta troppo grosso(sono mail in realtà),ma apparte questo, mi interessava sapere se posso dichiarare una matrice senza dover dichiarare la sua dimensione con VB6
    certo, puoi farlo.
    Ti scrivo le istruzioni che si utilizzano per questo scopo (presumiamo che il nostro array debba essere di tipo String):
    codice:
    Dim myArray() As String 'dichiaro l'array con indice non specificato
    
    
    Redim myArray(3) 'l'array può contenere un indice max = 2
    
    'Se però voglio che il mio array abbia un indice max più grande
    ' e non voglio perdere il contenuto già memorizzato:
    
    Redim Preserve myArray(10) 'l'array avrà un indice max = 9
    spero di essere stata chiara.
    ciao

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  6. #6
    domanda, se ridimensiono l'array in un ciclo while, le precedenti istruzioni sono perse?

    es:
    codice:
    a=0
    dim b() as string
    do while eof(1)
      redim b (0 to a+1)
      input #1, c
      b(a)=c
      a=a+1
    loop

  7. #7
    ok..non chiedevo di meglio..grazie a tutti e due

  8. #8
    scusate..la domanda precedente mi è partita prima che finissi di leggere correttamente i messaggi.


  9. #9
    Originariamente inviato da lbottoni
    domanda, se ridimensiono l'array in un ciclo while, le precedenti istruzioni sono perse?

    es:
    codice:
    a=0
    dim b() as string
    do while eof(1)
      redim b (0 to a+1)
      input #1, c
      b(a)=c
      a=a+1
    loop
    ti ho risposto prima a questo quesito, postandoti le istruzioni che ti servono per gestire l'array.
    In questo caso ti basta modificare il codice aggiungendo il Preserve:
    codice:
    a=0
    dim b() as string
    do while eof(1)
      redim Preserve b (0 to a+1)
      input #1, c
      b(a)=c
      a=a+1
    loop

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2001
    Messaggi
    798
    per me la soluzione migliore, se applicabile al suo caso, resta prima leggere il file e poi fare una Split. Anche come velocità.
    Ans.

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.