Hallo Hans Werner,
Am 07.12.2017 um 10:29 schrieb OoOHWHOoO:
Oder habe ich Dich vielleicht völlig falsch verstanden ?
Hast Du. Versuche mal, die Texte zu lesen und nicht gleich auf deine
Anwendung/die Hilfe-Beispiele zu übertragen und Fehlinterpretationen
hinzubauen.
Du kannst keine "Kommas" weglassen - das ist weder der Sinn noch meine
Aussage.
Trenne das Ganze abstarkt:
Du übergibst beim Aufruf der Funktion dieser eine Liste mit Parametern
... die Anzahl der Parameter wird bestimmt durch die Anzahl der Trenner +1
Also: Funktion(a,b) -> zwei Parameter, weil ein Trenner dabei ist.
Die Parameter werden nun entsprechend der physikalischen Reihenfolge der
aufrufenden Funktion übergeben.
sub Funktion( a1,b1,c1,d1) - würde zu einem Fehler führen, da die
Funktion 4 Parameter erwartet, aber nur zwei erhält.
Um den Fehler abzufangen, wird der Begriff "optional" eingeführt:
sub Funktion (a1, b1, optional c1, optional d1) - kein Fehler mehr,
zwei Parameter werden übergeben, 2-4 erwartet. Passt.
Mit isMissing() kannst Du nun c1 und d1 abfragen und eventuel neu
definieren bzw Werte zuweisen.
Der Aufruf Funktion(a,,b) übergibt 3 Parameter - zwei Trenner! Der
mittlere fehlt eben nicht! Wäre aber in dem Fall leer und führt zum
Fehler, da die Funktion eine Wert erwartet!
sub Funktion (a1, b1, optional c1, optional d1) -> a1 bekommt den Wert
von a zugewiesen, b1 bekommt den Wert von "nichts" zugewiesen, c1
bekommt den Wert von b zugewiesen, der Parameter d1 fehlt.
Das kann dir isMissing(d1) = true liefern.
Setzt Du alle Parameter auf "optional" würde das bei Basic gehen (siehe
letzte mail) - ist aber unsauber und nicht korrekt.
Korrekt wäre: sub Funktion (a1 as integer, b1 as integer, optional c1 as
integer, optional d1 as integer) -> Das führt beim Aufruf
funktion(2,,3) zu dem korrekten Ergebnis:
a1 = 2, b1 = 0, c1 = 3, d1 = ?? -> missing
Das ist auch die korrekte Programmierung.
Zu Deiner Aufgabenstellung:
Du willst doch alle drei Parameter haben, oder? Lass das optionale weg
und verlagere die Prüfung vor den Aufruf. In dem Zusammenhang viel
sinnvoller. Und dann übergib immer drei Werte.
Willst Du die Prüfung unbedingt in der aufzurufenden Funktion, arbeite
mit Platzhalterwerten - z.B. -1 für "nichts".
Viele Grüße
Thomas
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.