gibt es in Notes 4.6x irgendeine Funktion mit der die Position eines Eintrags innerhalb eines Arrays mit Notes Skript ermitteln kann?
Ich muß in einer Notes Datenbank in einem Export-Agent eine Menge Schlüsseldaten „übersetzen“ und wollte dies tun, indem ich die Originalwerte und die neuen Werte jeweils in ein Array eintrage. Dann wollte ich die Position eines Feldwertes innerhalb des Originalarray ermitteln und durch den entsprechenden Wert im Array der übersetzten Werte ersetzen. Eine Lösung mittels @member und Evaluate kommt nicht in Frage, da Evaluate ja immer eine Konstante als Parameter benötigt und ich so den jeweils aktuellen Feldwert nicht übergeben kann.
Irgendwelche Ideen?
Danke im Voraus
Peter
gibt es in Notes 4.6x irgendeine Funktion mit der die Position
eines Eintrags innerhalb eines Arrays mit Notes Skript
ermitteln kann?
ja da gibts mehrere Möglichkeiten.
Ich muß in einer Notes Datenbank in einem Export-Agent eine
Menge Schlüsseldaten „übersetzen“ und wollte dies tun, indem
ich die Originalwerte und die neuen Werte jeweils in ein Array
eintrage. Dann wollte ich die Position eines Feldwertes
innerhalb des Originalarray ermitteln und durch den
entsprechenden Wert im Array der übersetzten Werte ersetzen.
Eine Lösung mittels @member und Evaluate kommt nicht in Frage,
da Evaluate ja immer eine Konstante als Parameter benötigt und
ich so den jeweils aktuellen Feldwert nicht übergeben kann.
Irgendwelche Ideen?
Danke im Voraus
Peter
Als erstes solltest du die beiden Arrays füllen. Hier kannst du entweder von vorne herein mit Dim XYZ(19)as String arbeiten, oder das Teil zuerst mit Dim XYZ()as String definieren und anschließend mit Redim(+1) jeweils immer nachdefinieren.
Für das lesen der Variablen würde ich mit folgender Routine arbeiten:
I = 0
forall V in xyz1.Values
I = I+1
if yourFieldKeyValue = V then
’ Exit if found
exit forall
end if
end forall
if I > 0 then
OtherkeyValue = xyz2(I-1)
else
’ No key found
end if
Diese Routine funktioniert allerdings nur, wenn du jeweils immer nur einen Schlüsselbegriff übergeben willst. Bei Multiselect Feldern musst du anders an das Problem herangehen.
gibt es in Notes 4.6x irgendeine Funktion mit der die Position
eines Eintrags innerhalb eines Arrays mit Notes Skript
ermitteln kann?
Nicht fertig, nur zum Selbstmachen (wie Thomas Schulte schon geschrieben hat).
Ich muß in einer Notes Datenbank in einem Export-Agent eine
Menge Schlüsseldaten „übersetzen“ und wollte dies tun, indem
ich die Originalwerte und die neuen Werte jeweils in ein Array
eintrage. Dann wollte ich die Position eines Feldwertes
innerhalb des Originalarray ermitteln und durch den
entsprechenden Wert im Array der übersetzten Werte ersetzen.
Warum schreibst Du das nicht gleich?
Es gibt in LotusScript sogenannte Listen, das sind in Wirklichkeit assoziative Arrays (), die man mit Schlüssel-Wert-Paaren füttert und einfach über den Schlüssel wieder an den Wert kommt.
Also zum Beispiel:
Dim SchlüsselWertPaare List as String
SchlüsselWertPaare(„Helmut“) = „Kohl“
SchlüsselWertPaare(„Gerhard“) = „Schröder“
Print SchlüsselWertPaare(„Gerhard“)
Es gibt in LotusScript sogenannte Listen, das sind in
Wirklichkeit assoziative Arrays (), die man mit
Schlüssel-Wert-Paaren füttert und einfach über den Schlüssel
wieder an den Wert kommt.
Also zum Beispiel:
Dim SchlüsselWertPaare List as String
SchlüsselWertPaare(„Helmut“) = „Kohl“
SchlüsselWertPaare(„Gerhard“) = „Schröder“
Print SchlüsselWertPaare(„Gerhard“)
Hallo Thomas,
Deine Idee ist sehr gut, aber bei mir werden in Abhängigkeit des Schlüsselwertes mehrere Feldwerte übersetzt, so daß ich mehrere Arrays benötige, bei denen die Werte in der richtige Reihenfolge abgelegt sind. Ich werde also die Lösung von Thomas Schulte nehmen müssen, auch wenn die nicht so gut lesbar ist wie Dein Vorschlag.
Danke Euch beiden
Peter