Italian Informazioni sulle Map

SSDM71

Active Member
Licensed User
Longtime User
Buongiorno e buona pasqua,

vorrei chiedervi più informazioni sulle Map. Io so:

-Sono dei file di testo
-Sono dei file in cui puoi salvare più informazioni

Le mie domande:

-Sono come delle matrici a due dimensioni?
-Come sono strutturate?

Grazie,
 

LucaMs

Expert
Licensed User
Longtime User
Non sono file di testo, sono molto più simili alle matrici, quindi variabili.

In effetti puoi considerarle un po' come matrici a due dimensioni, ma con molti vantaggi, rispetto a queste.

Il "primo indice" funge da chiave e può essere di qualunque tipo, numero o stringa, ad esempio. Anche il secondo può contenere qualunque tipo, Int, Long, ... ma anche oggetti creati da una tua classe o altre map o list... praticamente di tutto.

Es:
B4X:
Dim mapClassifica As Map
mapClassifica.Initialize

mapClassifica.Put("Juventus", -100) ' hehehe
mapClassifica.Put("Inter", 999)

log(mapClassifica.Get("Inter")) ' restituirà 999
log(mapClassifica.GetDefault("Lazio", 50)) ' dato che non ho caricato il punteggio della Lazio, restituirà 50 come default
log(mapClassifica.GetKeyAt(1)) ' restituirà la chiave del secondo elemento (1) ovvero "Inter"
log(mapClassifica.GetValueAt(1)) ' restituirà il valore del secondo elemento, cioè 999
 

SSDM71

Active Member
Licensed User
Longtime User
Scrivo la map
B4X:
Dim Schier As Map
Schier.Initialize
Schier.Put("Schieramento",matGIOCO)
File.WriteMap(File.DirInternal,"Schieramento"&num&".txt",Schier)

MatGioco è una matrice di tipo stringa

B4X:
Dim Schier As Map
Schier.Initialize
Schier=File.ReadMap(File.DirInternal,"Schieramento"&Position&".txt")
matGIOCO=Schier.Get("Schieramento")

Quando la leggo mi da questo errore (quello in foto)

In cosa sbaglio?

Grazie,
 

Attachments

  • Cattura.PNG
    Cattura.PNG
    4.6 KB · Views: 124

LucaMs

Expert
Licensed User
Longtime User
Non sbagli nella memorizzazione ma il salvataggio non consente tutto; in questo caso, non consente il salvataggio della matrice.
Puoi solo continuare a gestire la map in quel modo, ma dovrai codificare il salvataggio e la rilettura "a mano", purtroppo.
 

SSDM71

Active Member
Licensed User
Longtime User
Quindi dovrei salvare ogni valore della matrice, e poi leggerlo?
 

LucaMs

Expert
Licensed User
Longtime User
Sì, insomma, dovrai trovare un modo per salvare la matrice, dato che la writemap non lo consente.
 
Top