Hallo,
ich habe da mal eine blöde Frage. Ich habe folgendes Konstrukt:
if (a_expr AND b_expr) Then
...
End If
a_expr liefert den Wert False. Trotzdem wird noch der Wert von b_expr ausgewertet.
Konkret sieht der Code wie folgt aus:
If (doc.HasEmbedded) Then
Dim item As NotesItem
Dim attachmentnames As Variant
Set item = doc.GetFirstItem ("Body")
attachmentnames = Evaluate( |@Attachmentnames|, doc )
If (Not item Is Nothing) Then
If (item.Type = RICHTEXT) Then
Dim rtitem As NotesRichTextItem
Set rtitem = doc.GetFirstItem ("Body")
If (Isarray (rtitem.EmbeddedObjects)_
And Ubound (attachmentnames) = Ubound (rtitem.EmbeddedObjects)) Then
'exportiere Attachments ueber EmbeddedObjects...
ElseIf
'exportiere Attachments ueber doc.GetAttachment...
End If
End If
End If
Isarray (rtitem.EmbeddedObjects) liefert False
Ubound (attachmentnames) liefert irgendeine Zahl
Ubound (rtitem.EmbeddedObjects) faellt auf die Nase (was ja auch richtig ist)
Ich habe mich nun darauf verlassen, dass die If-Bedingung in diesem Fall bereits nach dem der Auswertung des ersten Operanten abgebrochen wird. Zumindest ist es in anderen Sprachen so.
Muss ich nun wirklich die If-Bedingung in 2 If-Konstrukte aufsplitten oder sehe ich den Wald vor lauter Bäumen nicht
Ich bin für jede Erleuchtung dankbar.
Bye Marco