Autor Thema: Wie Liste auf Vorhandensein von Listenelementen prüfen?  (Gelesen 2968 mal)

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Ich steh auf dem Schlauch:

Für den Vergleich zweier Dokumente stelle ich eine Abgleichsliste auf, d.h.,
wenn Dok2 im Feld "ab" verschieden ist von Dok1, erstelle ich in der Liste ein
Listenelement mit ListTag "ab" und dem Feldwert in Dok1.
Die Liste wird danach weiterverwurstet.
Das Problem: Wenn die Dokumente dieselben Werte in den gleichnamigen Feldern haben,
enthält die Liste kein einziges Listenelement.
Wie kann ich das abfragen?

Is nothing liefert Typemismatch, IsList, IsArray und Isempty greifen nicht.

???

Notes 8.0 auf Windows Vista.

Grüsse

Dau-in
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

BigWim

  • Gast
Re: Wie Liste auf Vorhandensein von Listenelementen prüfen?
« Antwort #1 am: 20.04.09 - 11:20:16 »
Wenn ich das richtig verstanden habe, tritt das Problem auf, wenn die Dokumente identisch sind und keine Liste erstellt wurde.

In diesem Fall arbeite ich mit einer Hilfsvariable. Also in unreine geschrieben.

Code
Dim bIsDokDiff as boolean
bIsDokDiff = false

if dok1 <> dok2 then
  bIsDokDiff = true
' Liste erstellen
endif

if bIsDokDiff = true then
'  Doks unterschiedlich. Verwurste Liste
endif

Viele Grüße
Markus

PS: Bin gespannt, ob es noch etwas eleganteres gibt ....

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Wie Liste auf Vorhandensein von Listenelementen prüfen?
« Antwort #2 am: 20.04.09 - 11:23:30 »
Ich habe ein Pseudoelement eingeführt, das in der weiteren Routine nicht mehr berücksichtigt wird.
Aber ich würde gerne so etwas wie 'hasElements' abfragen.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline jBubbleBoy

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.290
  • Geschlecht: Männlich
Re: Wie Liste auf Vorhandensein von Listenelementen prüfen?
« Antwort #3 am: 20.04.09 - 11:24:55 »
Listen sind nicht dafür Konzeptioniert eine Anzahl von Werten zu verwalten. Wenn du deine Liste verarbeitest, wahrscheinlich mit:
forall x in "liste"
dann bekommst Du doch mit ob etwas vorhanden ist oder nicht.
Gruss Erik :: Freelancer :: KI-Dev, Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.16 / OLI 2.0

--
Nur ein toter Bug, ist ein guter Bug!

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Wie Liste auf Vorhandensein von Listenelementen prüfen?
« Antwort #4 am: 20.04.09 - 11:27:08 »
ich will die Liste direkt weiterreichen in eine andere Routine.
und das knallt dann.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

BigWim

  • Gast
Re: Wie Liste auf Vorhandensein von Listenelementen prüfen?
« Antwort #5 am: 20.04.09 - 11:31:07 »
Hast Du es schon mal mit IsList und IsElement probiert?

Mit Listen habe ich persönlich (noch) nicht viel Erfahrung. Das habe ich in der Hilfe gefunden.

Zitat
IsList( listName ) returns True (-1) or False (0) depending on whether listName is a list.

Zitat
IsElement( listName ( stringExpr )) returns True (-1) or False (0) depending on whether stringExpr is a list tag in listName. There are a variety of circumstances under which you might want to test for the existence of a particular list tag in a list. Two cases are:
You want to add a new element to a list and want to make sure that the list tag you plan to use isn’t already in use (because if it is, and you used it in an assignment statement, you would overwrite the element that it identifies).
You want to refer to an element and want to make sure that the element exists before doing so (because if you refer to a nonexistent list tag, LotusScript returns an error).

Offline Werner Götz

  • Aktives Mitglied
  • ***
  • Beiträge: 248
  • Geschlecht: Männlich
Re: Wie Liste auf Vorhandensein von Listenelementen prüfen?
« Antwort #6 am: 20.04.09 - 11:34:00 »
Vielleicht hilft das weiter?
Code
Function HasElements(lst As Variant) As Boolean
	Forall e In lst
		HasElements = True
		Exit Function
	End Forall
	HasElements = False
End Function

-Werner

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Wie Liste auf Vorhandensein von Listenelementen prüfen?
« Antwort #7 am: 20.04.09 - 11:35:30 »
IsList gibt true zurück, weil die Variable als Liste definiert ist.
Das Abfragen der Listtags bringt auch nichts, weil die erst definiert werden, wenn ein Unterschied besteht.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Wie Liste auf Vorhandensein von Listenelementen prüfen?
« Antwort #8 am: 20.04.09 - 11:36:34 »
Vielleicht hilft das weiter?
Code
Function HasElements(lst As Variant) As Boolean
	Forall e In lst
		HasElements = True
		Exit Function
	End Forall
	HasElements = False
End Function

-Werner


Die Firma dankt.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz