Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: robertpp am 02.10.03 - 12:14:31

Titel: Array leer -> Exit Sub
Beitrag von: robertpp am 02.10.03 - 12:14:31
Ich bekomme das leider nicht hin:
Ich mach das so:
Dim arrayAccess() As String
   If iz =0 Then
      Redim arrayZugriff( iz )
      arrayZugriff( iz ) = zentry.ColumnValues(1)
      iz = iz + 1
   Else
      Redim Preserve arrayZugriff( iz )
      arrayZugriff( iz ) = zentry.ColumnValues(1)
      iz = iz + 1
   End If
das passt auch alles nur es besteht der Fall das das array garnicht gefüllt wir!
Wie kann ich nachher realisieren das er Exit Sub macht:
Ich habe es so schon versucht:

   doc.arrayja = arrayZugriff
   If Isempty(doc.arrayja(0)) Then Exit Sub
das geht nicht:
   If Isempty(arrayZugriff) Then Exit Sub
das auch nicht

kannn mir jemand helfen!
Titel: Re:Array leer -> Exit Sub
Beitrag von: klaussal am 02.10.03 - 12:34:32
... auf die schnelle (aus der klamottenkiste):

setzt dir einen schalter, wenn der array gefüllt wird.
Titel: Re:Array leer -> Exit Sub
Beitrag von: Driri am 02.10.03 - 12:37:09
Hi,

hast Du das schon mal mit IsNull probiert ?

If IsNull(arrayZugriff(0)) Then Exit Sub
Titel: Re:Array leer -> Exit Sub
Beitrag von: koehlerbv am 02.10.03 - 12:45:59
Soweit ich das sehe, wird ja immer ein Array erzeugt, so daß also array (0) immer existiert (also nie "empty" ist). NULL wird auch nicht zugewiesen, hilft also auch nicht weiter.
So sollte eine Abfrage auf array (0) = "" möglich sein.

HTH,
Bernhard
Titel: Re:Array leer -> Exit Sub
Beitrag von: robertpp am 02.10.03 - 12:54:31
@koehlerbv

das array wird erst dann erzeigt wenn ein eintrag vorhanden ist vorher existiert es nicht!!

@driri

das geht auch nicht mit If IsNull(arrayZugriff(0)) Then Exit Sub

Ich sehe schon mir wird nicht erspart bleiben es über einen zweite variable zu machen!!
Na vielleicht fällt sonst noch jemand etwas ein!!!
Titel: Re:Array leer -> Exit Sub
Beitrag von: robertpp am 02.10.03 - 12:58:45
Ich hab die Lösung ;D ;D

   If Isempty(iz) Then
      Exit Sub
   End If

so geht es!!!!
Titel: Re:Array leer -> Exit Sub
Beitrag von: koehlerbv am 02.10.03 - 16:55:54
Trotz der vielen, vielen Ausrufezeichen: Die Sache war aber jetzt etwas wirr.
Kannst Du uns (klaussal, Driri und mir sowie der anderen atnotes-Gemeinde, die den Thread ja ggf. mit gelesen hat) ein paar nähere Infos geben ?

Bernhard
Titel: Re:Array leer -> Exit Sub
Beitrag von: robertpp am 02.10.03 - 17:13:46
Die Lösung:
Dim arrayAccess() As String
Dim iz as Integer
Jetzt ist das array leer und iz ist auch leer:
Wenn jetzt die erste if Formel eintritt und iz gleich leer ist dann macht er das rotgeschriebenen das ist eh einleuchtend.

If zentry.ColumnValues(2) = "115" Then
   If iz =0 Then
      Redim arrayZugriff( iz )
      arrayZugriff( iz ) = zentry.ColumnValues(1)
      iz = iz + 1  
   Else
      Redim Preserve arrayZugriff( iz )
      arrayZugriff( iz ) = zentry.ColumnValues(1)
      iz = iz + 1
   End If
End If
Sollte jetzt aber nie zentry.ColumnValues(2) = "115" sein dann hat das array auch keine werte und iz ist immer noch empty und genau das hab ich gebraucht!!

If Isempty(iz) Then
      Exit Sub
   End If
Titel: Re:Array leer -> Exit Sub
Beitrag von: koehlerbv am 02.10.03 - 17:51:19
Mit dem "Code drumherum" wird es etwas klarer. Aber Du hast nicht recht:

Zitat
Dim arrayAccess() As String
Dim iz as Integer

Nach der Definition von iz hat diese Variable den Wert 0, ist also keinesfalls "IsEmpty".
Der Sinn der Definition von arrayAccess erschliesst sich mir nicht ganz.

An Hand folgenden Beispielcodes kannst Du das Ganze ja mal nachvollziehen:

Sub Click(Source As Button)
   
   Dim arrayAccess () As String
   Dim iz As Integer
   
   If Isempty (arrayAccess) Then
      Msgbox "ArrayAccess ist Empty"
   End If
   
   If Isnull (arrayAccess) Then
      Msgbox "ArrayAccess ist NULL"
   End If
   
   If Isscalar (arrayAccess) Then
      Msgbox "ArrayAccess ist skalar"
   End If
   
   If iz = 0 Then
      Msgbox "iz = 0"
   Else
      Msgbox "iz <> 0"
   End If
   
   If Isempty (iz) Then
      Msgbox "iz is empty "
   Else
      Msgbox "iz is NOT empty "
   End If
   
End Sub

Vulgo:
- iz ist nicht leer, sondern hat den Integerwert 0.
- was Du mit "array" meinst, weiss ich nicht, da Du mit arrayAccess und arrayZugriff dealst. Hast Du Option Declare verwendet ?

Bernhard