Re: Hashes in REXX bzw. Limits von REXX Symboltabellen



Marcel Müller schrieb:
Hallo,

ich verwende manchmal in O-REXX den Hack, die eingebaute Symboltabelle als Map (Key->Value) zu missbrauchen. Also man nehme einen Stamm (z.B. "MAP.") und packe den Key dahinter: "MAP.KEY1". Und dann weist man der Variablen mit VALUE() einen Wert zu. Der Key muss natürlich ggf. auf die gültigen Zeichen für Symbole abgebildet werden.

Nur scheint REXX da irgendwelche Beschränkungen zu haben. In einem Programm mit einigen Tausend Keys, kommt es immer öfters vor, dass das Skript seine Keys nicht mehr wiederfindet. Es ist zumindest kurzfristig reproduzierbar, welche das sind.

Weiß jemand ob es da definierte Limits für die Symboltabelle gibt und wo die ggf. liegen?

Oder gibt es eine andere Alternative um Hash-artige Container in REXX zu nutzen?


Marcel
Kannst du ein kurzes Beispiel geben ? Machst du das:

KEY1 = 'Test'

value('MAP.'KEY1, 3)

say MAP.Test // sollte 3 zurückgeben

?

Dann kannst du auch auf die Funktion VALUE verzichten:

KEY1 = 'TARGET'
MAP.KEY1 = 5
say MAP.KEY1 // zeigt '5' an
say MAP.TARGET // zeigt ebenfalls '5' an


Allerdings muß 'KEY1' eine Zeichenkette in Upperstring zugewiesen werden !

KEY1 = 'Target'
MAP.KEY1 = 5
say MAP.KEY1 // zeigt '5' an
say MAP.Target // zeigt 'TARGET' an
say MAP.TARGET // zeigt 'TARGET' an


Außerdem glaube ich ist es nötig die Stemvariable zu initialisieren:

MAP. = 0
KEY1 = 'TARGET'
MAP.KEY1 = 5
say MAP.KEY1 // zeigt '5' an
say MAP.Target // zeigt '5' an
say MAP.TARGET // zeigt '5' an

Lars
.



Relevant Pages

  • Hashes in REXX bzw. Limits von REXX Symboltabellen
    ... ich verwende manchmal in O-REXX den Hack, die eingebaute Symboltabelle als Map zu missbrauchen. ... Also man nehme einen Stamm und packe den Key dahinter: ... Und dann weist man der Variablen mit VALUE() einen Wert zu. ... Oder gibt es eine andere Alternative um Hash-artige Container in REXX zu nutzen? ...
    (de.comp.os.os2.programmer)
  • Re: Effizient Keys in einer Map tauschen
    ... Einfach einen Value vx lesen, den Value vy lesen, der bei dem Key steht, ... zu dem Value vx nun gehören soll, das Paar ky/vx in die Map speichern... ... einen Array umsortieren wolltest... ... Key lauten soll. ...
    (de.comp.lang.java)
  • Re: CMapStringToString und Lookup Problem
    ... Leider ist nach dem Lookup nichts im Value. ... Und der Wert von 'Key'? ... Textdateien eingelesen, also auch die Map. ...
    (microsoft.public.de.vc)
  • Re: Methoden richtig schreiben
    ... Returns true if this map contains a mapping for the ... specified key. ... Nehmen wir eine Map zum Beispiel. ... Object value = map.get; ...
    (de.comp.lang.java)
  • Re: Symboltabelle mit WeakReferences? Wie?
    ... Gets the object maped to the given key. ... Since a SoftHashMap uses {@link SoftReference SoftReferences} ... @param key the key to the requested object ... // From the SoftReference we get the value, ...
    (de.comp.lang.java)