Hallo Zusammen Vielleicht kennt noch jemand Powerbasic 3.5 oder Quickbasic, ist auch sehr ähnlich. Ich will mit PB3.5 eine Function erstellen, aber irgendwie klappt die Parameterübergabe nicht richtig. Hier der Code: declare Function tabel_editor$(len_x?,file$) 'Funktion deklarieren tabel_editor$(73,"tabelle3.par") 'Funktion aufrufen end Function tabel_editor$(len_x?,file$) 'Hier die Funktion .. end function Wenn ich nur das Parameter file$ (string) übergebe, funktioniert alles, kommt das zweite Parameter len_x? (byte) dazu, kommt beim kompilieren immer beim Aufruf der Funktion ein Fehler. Kann mir jemand sagen, was ich hier falsch mache, habe im www und in der Hilfe nachgeschaut, komme aber nicht drauf...
:
Verschoben durch User
Michael L. schrieb: > kommt beim kompilieren > immer beim Aufruf der Funktion ein Fehler. Ohne jetzt Powerbasic oder Quickbasic zu kennen, würde ich sagen, daß beim Compilieren bestimmt nicht nur die Ausschrift ***Fehler*** kommt. Vielleicht kannst du aus dem vollständigen Wortlaut der Fehlermeldung einen Rückschluß ziehen über die Ursache?
Der Fehler kommt, weil mehr als ein Parameter übergeben wird. Gemäss Hilfe sollte es aber möglich sein, bis zu 32 Parameter zu übergeben.
Ist "len_x?" als Variablenname zugelassen? Ich meine speziell das Fragezeichen.
Das "?" bedeutet, dass die Variable ein byte ist. Das "$" bedeutet, die Variable ist ein String. Wie wird den eine Funktion im "heutigen" Basic deklariert ? Das PB3.5 ist noch von den DOS Zeiten.... Vielleicht lässt sich da was ableiten...
Jetzt funktionierts !!! bei dem Aufruf der Funktion müssen nur die Klammern weggelassen werden: tabel_editor$ 73,"tabelle3.par"
Da muß man erstmal drauf kommen. Eine Funktion ohne Klammern. Naja, egal, du hast es rausgefunden. Glückwunsch!
Aus Visual Basic für Excel : Wird eine Funktion in der Form "Ergebnis = MeineFunktion" aufgerufen, sodaß sie einen Wert zurückgibt, dann muß die Liste der übergebenen Argumente eingeklammert werden. Bsp. : Ergebnis = MeineFunktion ( Arg1, Arg2, Arg3, ... ) Wird die gleiche Funktion als Prozedur (ohne Rückgabewert) aufgerufen, dann darf die Liste der Argumente nicht eingeklammert werden. Bsp.: MeineFunktion Arg1, Arg2, Arg3, ... Zudem gibt es Regeln für das Einklammern der einzelnen Argumente, je nach dem, ob ein Argument als Wert (als Kopie des Wertes) oder als Referenz (als Speicheradresse des Wertes) übergeben werden soll. Bsp.: als Prozedur: MeineFunktion Arg1, (Arg2), Arg3, ... als Funktion: Ergebnis = MeineFunktion ( Arg1, (Arg2), Arg3, ... ) Zum vom TE oben beschriebenen Fehler : Die Klammern sind beim Aufruf der Funktion als Prozedur also wegzulassen, wie im Fall von zwei Argumenten an der Fehlermeldung zu sehen ist. Daß im Fall von einem einzigen eingeklammerten Argument kein Fehler gemeldet wird, liegt daran, daß sich diese Klammer auf dieses einzelne Argument und dessen Referenzierung bezieht, also nicht als Einklammerung einer Argument-Liste interpretiert wird (wie es bei zwei oder mehr Argumenten in einer Klammer der Fall wäre).
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.