Italian [B4J] vettore con indice non numerico

MARCO C.

Active Member
Licensed User
Buongiorno,
sapete dirmi se con B4J esistono i vettori con indice non numerico ( es. come in php ) ?

$persona["nome"] = "Mario";
$persona["cognome"] = "Rossi";
$persona["eta"] = 56;

dovrei mi serve per una cosa tipo questa :
prov("CA") = "Cagliari"
prov("RM") = "Roma"
prov("TP") = "Trapani" ...

quindi la mia speranza è questa
Log(prov("CA"))

Cagliari

al momento ho trovato solo questa soluzione obbligatoria ma con riferimento alla posizione :-(


Dim CrespList As List = Array("CA", "RM","SA","BA", "TP","CT","MI","TO","PC","BO") ...etc
Dim CrespListCitta As List = Array("Cagliari", "Roma","Salerno","Bari", "Trapani","Catania","Milano","Torino","Piacenza","Bologna") .etc...

Grazie in anticipo
 
Last edited:

Sagenut

Expert
Licensed User
Longtime User
Usare una Map?
B4X:
Dim Citta as Map = CreateMap("CA":"Cagliari", "FI":"Firenze, "MI":"Milano")
Log(Citta.Get("CA"))
La mappa andrebbe creata e salvata come file una volta e poi caricata direttamente.
 

giannimaione

Well-Known Member
Licensed User
Longtime User
inoltre
B4X:
'ok per
    'Dim Citta as Map = CreateMap("CA":"Cagliari", "FI":"Firenze, "MI":"Milano")
    '
    'altro esempio
    Dim citta As Map
    citta.Initialize
    citta.Put("CA", "cagliari")
    citta.Put("FI", "Firenze")
    '
    '
    '
    citta.Put("CA", "Cagliari") 'sostituisce cagliari con Cagliari
    '
    '
    If citta.ContainsKey("FI") Then
        citta.Remove("FI") 'rimuove elemento "FI"
    End If
    citta.Put("TO", "Torino")
    '
    'per evitare brutte sorprese io utilizzo
    Dim Nome As String = citta.GetDefault("MI", "Non presente!")
    Log(Nome)
    '
    '
    'e poi il ciclo
    For Each Key As String In citta.Keys
        Dim Value As Object = citta.Get(Key)
        Log($"Sigla ${Key} ---> Città ${Value}"$)
    Next
 
Top