Forum: PC-Programmierung Function Deklarieren


von Michael L. (nightflyer88)


Lesenswert?

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
von ich (Gast)


Lesenswert?

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?

von Michael L. (nightflyer88)


Angehängte Dateien:

Lesenswert?

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.

von ich (Gast)


Lesenswert?

Ist "len_x?" als Variablenname zugelassen? Ich meine speziell das 
Fragezeichen.

von Michael L. (nightflyer88)


Lesenswert?

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...

von Michael L. (nightflyer88)


Lesenswert?

Jetzt funktionierts !!!

bei dem Aufruf der Funktion müssen nur die Klammern weggelassen werden:
tabel_editor$ 73,"tabelle3.par"

von ich (Gast)


Lesenswert?

Da muß man erstmal drauf kommen. Eine Funktion ohne Klammern.
Naja, egal, du hast es rausgefunden. Glückwunsch!

von Rainer V. (rudi994)


Lesenswert?

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
Noch kein Account? Hier anmelden.