Seite 1 von 1
Steuerbefehle für übergebene Listen in Prozeduren
Verfasst: 28.05.2014 10:04
von Lebostein
Angenommen, ich möchte eine Funktion SecondElement(
liste) schreiben (soll nur ein einfaches Beispiel sein).
liste soll dabei eine beliebige Liste sein, ich will also nicht auf die Struktur eines Listenelementes zugreifen. Mit meinen Kenntnissen kriege ich das nur mit einem Macro hin
Code: Alles auswählen
Macro SecondElement(liste)
FirstElement(liste)
NextElement(liste)
EndMacro
Geht das auch mit einer Prozedur? Dort muss ich ja den Typ der Liste angeben, die ich an die Prozedur übergebe, obwohl ich in der Prozedur nur einfache Listen-Steuerbefehle (AddElement, NextElement, SwapElement usw.) verwenden möchte.
Re: Steuerbefehle für übergebene Listen in Prozeduren
Verfasst: 28.05.2014 11:11
von TroaX
Müsste eigentlich mit Pointer gehen. Beispiel habe ich gerade leider nicht parat. Bin unterwegs. Aber lese dich da mal ein. Das müsste gehen.
Re: Steuerbefehle für übergebene Listen in Prozeduren
Verfasst: 28.05.2014 11:17
von NicTheQuick
Gegenfrage: Was stört dich an dem Makro genau?
Re: Steuerbefehle für übergebene Listen in Prozeduren
Verfasst: 28.05.2014 12:14
von STARGÅTE
Vermutlich, dass man kein Rückgabewert nutzen kann.
Da Prozedurparameter von hinten nach vorne ausgeführt werden (zuminest nach aktuellen Stand), kann man sich folgendes Hilfs-Macro erstellen:
Code: Alles auswählen
Procedure SecondElement_P(*Pointer1, *Pointer2)
ProcedureReturn *Pointer1
EndProcedure
Macro SecondElement(ListName)
SecondElement_P(NextElement(ListName), FirstElement(ListName))
EndMacro
NewList Test()
AddElement(Test()) : Test() = 1
AddElement(Test()) : Test() = 2
AddElement(Test()) : Test() = 3
AddElement(Test()) : Test() = 4
Debug PeekI(SecondElement(Test()))
Debug Test()