Autore Topic: Serializzare un Oggetto  (Letto 1672 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Serializzare un Oggetto
« Risposta #1 il: 20 Febbraio 2020, 16:26:35 »
Forse il codice andrebbe scritto così: vedi progetto allegato.
Però non capisco il vantaggio di usare un flusso di dati  :-\

Qualcuno potrebbe illuminarmi  :P
« Ultima modifica: 20 Febbraio 2020, 23:41:05 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Serializzare un Oggetto
« Risposta #2 il: 20 Febbraio 2020, 23:40:17 »
Ho cambiato il progetto (vedi sopra), penso che ora sia scritto in modo corretto.
Rispondo da solo alla domanda sul vantaggio, scritta così la classe non ha bisogno di gb.settings per salvare i dati.
Dati umanamente poco leggibili in verità...
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:Serializzare un Oggetto
« Risposta #3 il: 21 Febbraio 2020, 23:25:56 »
Non capisco l'utilità di questa cosa, mi sembra un'inutile complicazione. :-\
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Serializzare un Oggetto
« Risposta #4 il: 26 Febbraio 2020, 13:29:04 »
Scusa il ritardo, ma in questi giorni sono stato molto impegnato in questioni extra programmazione.

Quando dici:
Non capisco l'utilità di questa cosa, mi sembra un'inutile complicazione. :-\

Cosa intendi precisamente?
Ti sembra un'inutile complicazione rispetto a quale altro codice?

 :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:Serializzare un Oggetto
« Risposta #5 il: 26 Febbraio 2020, 23:09:53 »
Rileggendo meglio (e traducendo, sopratutto) il post, se ho capito bene lui vorrebbe scrivere e leggere i valori delle proprietà in un botto solo senza usare il metodo classico di scrivere i valori uno per volta,  però nella procedura di lettura:
Codice: [Seleziona]
Dim hFile As File
Dim item As MyObject
If Not Exist(_fileName) Then Return
hFile = Open _filename For Input
item = Read #hfile As MyObject
Close #hfile
non ha scritto l'istruzione
Codice: [Seleziona]
item = New MyObject
come nella procedura di scrittura. Non è che il problema nasce tutto da li?
In pratica l'oggetto non lo ha creato.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:Serializzare un Oggetto
« Risposta #6 il: 01 Marzo 2020, 21:26:08 »
Ho provato a riscriverlo aggiungendo la linea che mancava di cui sopra, mantenendo la sua versione originale, in questa maniera:

Codice: [Seleziona]
Public Sub Form_Open()
scrivi
leggi
End

Public Sub scrivi()
Dim hFile As File
Dim item As MyObject
item = New MyObject
item.Name = "un nome qualsiasi"
hFile = Open "/home/max/fileName" For Output Create
Write #hFile, item As Object   '<- qui da errore
Close #hFile
End

Public Sub leggi()
Dim hFile As File
Dim item As MyObject
item = New MyObject
If Not Exist("/home/max/fileName") Then Return
hFile = Open "/home/max/fileName" For Input
item = Read #hfile As Object
Close #hfile
Print item.Name
End

ovviamente scrivendo anche la classe MyObject, lui dice che la routine di scrittura funziona, ma invece a me da errore dove ho segnato perchè si aspetta un tipo standard invece di un oggetto. :-\
« Ultima modifica: 01 Marzo 2020, 21:29:45 da Top Fuel »
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:Serializzare un Oggetto
« Risposta #7 il: 01 Marzo 2020, 22:18:03 »
Sai che non capisco di cosa stai parlando?
Io ho postato un progetto dimostrativo che funziona e credo faccia quello che l'amico tedesco non riusciva a fare.
Tu poi in risposta hai scritto che ti sembrava una complicazione.
A quel punto non capendo a cosa ti stavi riferendo (complicato rispetto a cosa?) ho chiesto lumi.
Ora stai provando a riscrivere il codice  ???  :rolleyes:

Mi sorge un dubbio, tu hai capito che questa particolarità di leggere e scrivere lo stream come un oggetto è disponibile a partire dalla versione 3.15?
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re:Serializzare un Oggetto
« Risposta #8 il: 02 Marzo 2020, 20:49:03 »
Ah, è una cosa che è stata introdotta nell'ultima versione. Io pensavo che era già preesistente (ho la 3.14.2).
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.