Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657

    [VB.NET] - Salvataggio dati come C++

    In c++, quando ho una classe e voglio salvare il suo contenuto faccio:

    codice:
    oggetto_fstram.write((char*)&oggetto_da_salvare,sizeof(Classe))
    supponendo di avere una classe generica di nome Classe e una sua istanza di nome oggetto_da_salvare, lui fa un casting e fa diventare tutto una a seguenza di caratteri e salva. Per riprendere i dati faccio la medesima cosa usando il metodo read con gli stessi identici parametri.

    Come si fa una cosa del genere in visual basic.net, conservare e prelevare le proprietà di una classe in un modo altrettando semplice?

  2. #2
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    up

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    La "Serializzazione Binaria" e' un argomento molto vasto ...

    Per .NET, leggi a partire da

    http://msdn.microsoft.com/library/de...ialization.asp

    Considera sempre che la serializzazione degli oggetti in C++, cosi' come la fai tu, e' fonte di pericolosi bug ... ma te lo avevo detto tempo fa ...

  4. #4
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    trovando un programmino su planetsource code, ho trovato (adattato e testato con successo) questo codice

    codice:
                Dim fStream As FileStream
                Dim bFormatter As New BinaryFormatter
                Dim prev As Preventivo = CreaPreventivo()
                fStream = New FileStream(NomeFile, FileMode.Create)
    
                bFormatter.Serialize(fStream, prev)
                fStream.Close()
    questo mi permette di salvare per intero un oggetto di una classe in un solo file. Quello che io nn riesco a fare è adattare questo file per salvare un array di oggetti di ti preventivo e (rileggere) lo stesso file...

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Hai provato?

    codice:
    Dim arrprev(10) As Preventivo 
    
    ...
    
    bFormatter.Serialize(fStream, arrprev)

  6. #6
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    il problema è ke bisogna sapere a priori quanti oggetti dovrai salvare o leggere. Non si può fare per la scrittura una cosa tipo append e per la lettura, legge tutto l'insieme del file?

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Esiste l'istruzione

    Redim Preserve

    per gestire array dinamici ...

  8. #8
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    Originariamente inviato da oregon
    Esiste l'istruzione

    Redim Preserve

    per gestire array dinamici ...
    sto provando ad usare arraylist...poi ti dico...grazie lo stesso

  9. #9
    Utente bannato
    Registrato dal
    Jun 2003
    Messaggi
    3,657
    funziona...
    xo ora ho un altro problema: ho dovuto ampliare la mia classe di altri 2 proprietà e quando apri i file mi da errore perché dice che la classe è formata da 10 membri di cui 8 deserializzati. E' possibile aprire i file ugualmente cn qualche macchingegno e convertirli?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Mi sa proprio di no ...

    Ma, alla fine, di quale codice stiamo parlando?

    Quale e' quello che usi per scrivere e quale e' quello per leggere?

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.