Optionale Parameter in eigener Sub

  • Einen schönen verregneten Tag allerseits!


    In einem Agenten hab ich ein paar Subs drin. Unter anderem auch eine für das Logging. Zu übergeben sind 4 Parameter:
    Sub ALog(NLog As NotesLog, LType As Integer, Msg As String, Errcode As Integer)
    NLog: die Instanz des NotesLogs
    LogType: 0 oder 1 (LogAction oder LogError, selbstdefiniert)
    Msg: die eigentliche Ausschrift (Feld A$ACTION, bzw. A$ERRMSG der Maske "LogEntry" der alog4.ntf)
    Errcode: der ErrorCode, der im Falle eines Fehler übergeben wird (Feld A$ERRCODE)
    Der Aufruf erfolgt bspw. mit
    Call ALog(agentLog, 1, thisAgName & ": Agent started: " & Now, 0)


    So, nun die Frage, wie ich es hinbekomme, dass der 4. Parameter optional ist. Ich möchte eigentlich nicht für das "normale" Logging und fürs Errorlogging zwei Subs schreiben. Ich könnte mich zwar strikt dran halten, dass ich immer alle 4 Parameter übergebe; im Falle des "normalen" Loggings meinetwegen eine "0", oder so. Aber wirklich schön finde ich das nicht...


    thx in advance
    RW

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

    • Offizieller Beitrag

    es funktioniert nicht.


    Variante 1
    Alternativ kannst du ein Array übergeben.
    Parameter 1
    Parameter 2
    ...
    Parameter x


    Variante 2
    ein 2-dim Array mit den Varbez.
    Variable 1 ... Parameter 1
    Variable 2 ... Parameter 2
    ...
    Variable x ... Parameter x


    Damit müssen dann Fehler allerdings in der Sub abgefungen werden. Variante 2 hat den Vorteil, dass die Reihenfolge der Parameter keine Rolle mehr spielt.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Ich danke euch.


    Was bei atnotes beschrieben ist, mag zwar funktionieren. Ich teile aber die Ansicht, dass das a) ranzig aussieht und b) nicht mehr wirklich gut zu warten ist.


    @Dirk: Das wäre eine Möglichkeit gewesen. Ich bin allerdings schon beinahe durch und hab ehrlich gesagt keine Lust mehr, den halben Code zu re-writen. Es betrifft ärgerlicherweise nicht nur die Log-Sub, da gibt es noch ein paar andere Stellen...


    Tja, wäre ja auch zu schön gewesen...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl