florengray
Goto Top

Arrays an andere Form übergeben

Also neuer Post.
Für andere:
Ich habe in einem Modul1 ganz viele Variablen als Public deklariert, damit andere Funktionen aus meinem Programm darauf zugreifen können.
Darunter auch eine Deklaration:

Public Erw_Bear_Opt_find_mark() As String
Public max_Erw_Bear_Opt_find_mark As Integer

An einer best. Stelle im Programm kann der Benutzer Textsequenzen eingeben, nach denen dann in einem anderen Text gesucht werden soll, und diese werden dann rot markiert. Da ich ja vorher nicht weis, nach wievielen Sequenzen der Benutzer suchen will
habe ich mir gedacht, dass ich die Var als Array gestalten könnte. Dann werden genau so viele Arrays angelegt, wie der Benutzr braucht.

Die Anzahl, wieviele Arrays der Benutzer angelegt hat, wird in max_Erw_Bear_Opt_find_mark gespeichert.
Wenn jetzt die Auswertung in dem Programm ablaufen soll, so sollte das Form dann mit einer For Schleife
die Inhalte der angelegten Arrays abrufen und die dann in die Suche einbauen.

z.B.
for a = 0 To max_Erw_Bear_Opt_find_mark
suche nach Erw_Bear_Opt_find_mark(a)
next a

Aber ich hab ein Problem.
In dem Form, wo der Benutzer die Arrays festlegt, wird das Array per ReDim Preserve Erw_Bear_Opt_find_mark(tmp_4) immer erweitert. Das Dim allerdings begrenzt den Gültigkeitsbereich. Und das ist das Problem.
Und nun frage ich euch, wie man das lösen könnte.

florengray

Content-ID: 86911

Url: https://administrator.de/contentid/86911

Ausgedruckt am: 25.11.2024 um 08:11 Uhr

bastla
bastla 03.05.2008 um 21:59:24 Uhr
Goto Top
Hallo florengray!

Auch wenn Du die von Dir verwendete VB-Version nicht genannt hast, wird sie sicherlich Split() bzw, wenn Du gesteigerten Wert darauf legen solltest, bereits beim Erfassen ein Array zu verwenden, Join() kennen - damit hast Du die Möglichkeit, alle Textsequenzen in einem einfachen String (mit passendem Trennzeichen) zusammenzufassen bzw daraus (wieder) ein Array zu machen ...

Zur Verdeutlichung: Beim Erfassen würde ich einfach die einzelnen Textsequenzen, zB durch "|" (oder ein anderes, ansonsten nicht vorkommendes Zeichen) getrennt, in einen gemeinsamen String packen, etwa:
If Sammelstring <> "" Then  
        Sammelstring = Sammelstring & "|" & TextBox1.Text  
Else
        Sammelstring = TextBox1.Text
End If
und danach mit
Erw_Bear_Opt_find_mark = Split(Sammelstring, "|")  
das gewünschte Array daraus machen.

Übrigens: Das "Mitzählen" der Array-Elemente erspart Dir die Funktion UBound().

Grüße
bastla
florengray
florengray 03.05.2008 um 23:27:00 Uhr
Goto Top
Hallo, oder besser guten Abend.
Vielen Dank bastla!

1. Habe VB Express 2008
2. Lerne die Sprache gerade. (Genau seit 5 Tagen)
3. Solche Funktionen kenne ich noch nett ist aber genial, dass ich sie jetzt so langsam von auch gezeigt krieg.
4. Herzliches Dankeschön an alle!
5. Gute Nacht an alle

florengray