Domino 9 und frühere Versionen > ND6: Entwicklung
Dynamisches zwei-dimensionales array erstellen
betty:
Hat schon mal jemand ein dynamisches zwei-dimensionales array gebaut? ???
Ich bin gerade dabei eine FTSearch über mehrere Datenbanken zu entwickeln. Ich möchte die Ergenisse in der jeweiligen DocumentCollection (für jede DB eine Collection) in einem dynamischen, zwei-dimensionalen array --> "searchresult()" sammeln und dieses dann der Methode "WriteResult( st_searchresult )" übergeben. Index1 beinhaltet die Datenbank, Index2 beinhaltet bestimmte Inhalte aus den Treffer-Dokumenten.
Problem: Bei mehrdimensionalen arrays funktioniert die Funktion Redim Preserve nur, wenn die letzte Dimension verändert wird. Wie schaffe ich es dann, nachdem die erste Collection durchlaufen ist und der Index2 immer um eins erhöht wurde, die Datenbank zu wechseln, d.h. den Index1 um eins zu erhöhen und bei Index2 wieder von vorne anzufangen?
Simples Beispiel, welches mein Problem auch darstellt:
Dim arrayLänderundStädte()
Collection1 mit Städten aus BW:
arrayLänderundStädte(Baden-Würrtemberg, Mannheim)
arrayLänderundStädte(Baden-Würrtemberg, Heidelberg)
...
Collection2 mit Städten aus Rheinland-Pfalz:
arrayLänderundStädte(Rheinland-Pfalz, Ludwigshafen)
arrayLänderundStädte(Rheinland-Pfalz, Speyer)
...
Wie kann ich beide Collections in ein Array packen??? Hoffentlich kann mir jemand helfen. Es muss ein dynamisches array sein, weil zu Beginn der Suche weder klar ist, wie viele DBs durchsucht werden sollen (das kann der User bestimmen), noch die Anzahl der Treffer bekannt ist.
Gruß
Bettina
Glombi:
Es gibt doch nur endlich viele Bundesländer, warum also muss der erste Index variabel sein?
Dynamische Arrays sind extrem unperformant. Alternativ kannst Du auch ein temporäres Dokument erstellen und dann dort Items (Felder) setzen:
Pro Index1 ein Feld mit Mehrfachwerten, welche dann Index2 repräsentieren.
Mit der Methode NotesItem.AppendToTextList füllst Du dann die Items.
Andreas
animate:
diese Methode 'writeResult' - gibt es die schon oder willst du die auch erst noch erstellen?
Es geht mir darum, ob du gezwungen bist, ein 2D-Array zu benutzen, weil es die Methode erwartet.
betty:
Das mit den Bundesländern war nur ein Beispiel. Die Bundesländer ensprechen den verschiedenen Datenbanken, die durchsucht werden und die Städte den gefundenen Dokumenten.
Die Methode WriteResult() ist noch in Bearbeitung. Sie sieht vor, das Ergebnis in einem RichtTextItem auszugeben. Ich dachte, ein 2-D-Array sei sehr geschickt, dann kann ich alles auf einmal übergeben. Ist also allgemein von dieser Art von Lösung abzuraten?
Ich bin ein absoluter Neuling in Sachen Notes. Welche Lösung wäre denn performant? Vielleicht einfach nach jeder Collection gleich die Methode WriteResult() aufrufen? Dann kann ich aber nicht alles in ein und daselbe RichtTextItem schreiben...
Bettina.
koehlerbv:
Übergib' WriteResult doch neben Deinem Suchergebnis auch das Ziel-RichTextItem gleich mit. Damit wird das Ganze dann gleich noch universeller.
HTH,
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln