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

    VB6 Salvare Un array multidimensionale

    Salve a tutti, dovrei salvare una serie di Array in un file binario per poi poterli richiamare, ma il mio codice non funziona come credevo.

    per salvare

    codice:
    Public selezionatiFiltri%(0 To 90, 1 To 200), selezionatiFiltriDis%(0 To 90, 1 To 200)
    Public Quanti%(0 To 10, 1 To 200), QuantiDis%(0 To 10, 1 To 200)
    
    V = FreeFile
    
    Open DirBIN & SalvaFile.FileTitle & ".bin" For Binary As #V
    
    Put #V, , selezionatiFiltri()
    Put #V, , selezionatiFiltriDis()
    Put #V, , Quanti()
    Put #V, , QuantiDis()
    
    
    Close #V
    per caricare

    codice:
    V = FreeFile
    
    Open DirBIN & SalvaFile.FileTitle & ".bin" For Binary As #V
    '' non so se va bene, gli indici 1,36401,sono gli spazi(moltiplicati per 2) che occupano gli array '' salvati in precedenza
    
    Get #V, 1, selezionatiFiltri()
    Get #V, 36401, selezionatiFiltriDis()
    Get #V, 72401, Quanti()
    Get #V, 76401, QuantiDis()
    
    Close #V
    Va bene raddoppiare gli spazi occupati? Perchè l'ho letto ma non ne ho capito il motivo..

  2. #2
    -un numero di tipo int occupa 2 byte, per quello se devi leggere 7 int devi leggere 14 byte (7*2)
    -quando sei in modalità binary la GET richiede come secondo parametro il byte di partenza di ciò che vuoi leggere. Nel tuo caso puoi anche ometterlo, perchè leggi il file con la stessa sequenza con la quale lo hai scritto. Ad ogni GET automaticamenete il puntatore si posiziona dopo l'ultimo byte letto.

    codice:
    Get #V, , selezionatiFiltri
    Get #V, , selezionatiFiltriDis
    Get #V, , Quanti
    Get #V, , QuantiDis

  3. #3
    Un solo commento... GRANDE !!
    Grazie mille per la dritta..
    Andrea

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.