Hallo zusammen,
da ich auf die schnelle kein Dictionary in glbasic gefunden habe, hier ein einfaches Dictionary bzw. eine Hashmap für Strings.
Damit kann man sich zu einem String Schlüssel einen String Wert halten/holen
Z.B.
dic as Dictionary
dic.set("kuh","muh")
speichert für den wert "kuh" den wert "muh"
Hinterher kann man sich diesen wieder holen mit
dic.get$("kuh")
wenn man "kuh" nochmals setzen würde würde der wert einfach überschrieben werden.
dic.get liefert 0 wenn der wert nicht gefunden wurde
dic.clear löscht alle elemente
dic.count gibt die anzahl wieder
da ich auf die schnelle kein Dictionary in glbasic gefunden habe, hier ein einfaches Dictionary bzw. eine Hashmap für Strings.
Damit kann man sich zu einem String Schlüssel einen String Wert halten/holen
Z.B.
dic as Dictionary
dic.set("kuh","muh")
speichert für den wert "kuh" den wert "muh"
Hinterher kann man sich diesen wieder holen mit
dic.get$("kuh")
wenn man "kuh" nochmals setzen würde würde der wert einfach überschrieben werden.
dic.get liefert 0 wenn der wert nicht gefunden wurde
dic.clear löscht alle elemente
dic.count gibt die anzahl wieder
Code (glbasic) Select
// --------------------------------- //
// Project: feuerware
// Start: Sunday, May 15, 2011
// IDE Version: 9.089
//GLOBAL dic AS Dictionary
//dic.set("a","b")
//dic.set("a","c")
//dic.set("d","edd")
//DEBUG dic.get$("a")
//DEBUG dic.get$("d")
//DEBUG dic.size()
//hashmap: "a" => "b"
TYPE Dictionary
keys$[]
values$[]
//adds or replace a key value pair
FUNCTION set: key$,value$
FOR i=0 TO LEN(self.keys$)-1
IF self.keys$[i] = key$
self.values$[i] = value$
RETURN
ENDIF
NEXT
//not found, redim
REDIM self.keys$[LEN(self.keys$)+1]
REDIM self.values$[LEN(self.values$)+1]
self.keys$[LEN(self.keys$)-1] = key$
self.values$[LEN(self.values$)-1] = value$
ENDFUNCTION
// returns 0 if doesnt exist
FUNCTION get$: key$
FOR i=0 TO LEN(self.keys$)-1
IF self.keys$[i] = key$
RETURN self.values$[i]
ENDIF
NEXT
RETURN 0
ENDFUNCTION
//how many key values are there?
FUNCTION size:
RETURN LEN(self.keys$)
ENDFUNCTION
//clears all items
FUNCTION clear:
REDIM self.keys$[0]
REDIM self.values$[0]
ENDFUNCTION
FUNCTION remove%: key$
FOR i=0 TO LEN(self.keys$)-1
IF self.keys$[i] = key$
DIMDEL self.keys$[],i
DIMDEL self.values$[],i
RETURN i
ENDIF
NEXT
RETURN -1
ENDFUNCTION
ENDTYPE