Seite 1 von 1

LinkedLists in Proceduren

Verfasst: 18.10.2004 21:21
von KeyKon
Hallo, ich will eine Procedure schreiben die eine LinkedList bearbeitet. Ich weis aber nicht wie. Das Problem:
Ich muss irgendwie den Namen der LinkedList in die Procedure eingeben können z.B. so:

Code: Alles auswählen

Listumwandeler(TestList())
Das geht aber nicht weil befehle wie SelectElement() keine Variablen annehmen!
Also, geht das irgendwie?

KeyKon

Verfasst: 18.10.2004 23:15
von Andre
Aus der Anleitung zu NewList:
Verknüpfte Listen sind in PureBasic immer global. Dies bedeutet, dass auf sie auch aus Prozeduren heraus zugegriffen werden kann, ohne die Befehle Global oder Shared aufrufen zu müssen.
Du musst also den Namen der LinkedList nicht als Parameter übergeben. :)

Verfasst: 20.10.2004 19:46
von KeyKon
Nein, ich hab gemeint dass man eine Bestimmte Procedure bearbeitet und zwar die, die man als Parameter angiebt also z.B. so (streng vereinfacht):

Code: Alles auswählen

global out.s
Procedure Out(LinkedListname.s,Ort.l)
SelectElement(LinkedListname,Ort)
out = LinkedListname
EndProcedure
Geht so etwas irgendwie???

KeyKon

Verfasst: 20.10.2004 20:07
von Deeem2031
Nein, geht nich!

Verfasst: 20.10.2004 22:47
von Froggerprogger
Man muss sich dafür seine eigenen Listen bauen:

Schau mal auf PureArea, oder hier im Forum nach Linked Lists (o.ä.):

a) Da gibt es eine Lösung von NicTheQuick, welche wahrscheinlich mit die schnellste Lösung ist, da sie (soweit ich mich entsinne) für Longs und Floats alles seperat macht.
Gibt unter Memory-Handling im Codearchiv auf PureArea.net - glaube ich.

b) ich habe auch mal eine entsprechende Lib gemacht, namens Queue, welche zudem mehrere verschiedene Datentypen gleichzeitig enthalten kann.
http://www.robsite.de/php/pureboard-arc ... ight=queue



... und bald gibt es die 'DynData'-Library für heterogene (also mehrere Datentypen gleichzeitig aufnehmende) Listen, Hashtables, Trees, SearchTrees (sogar RedBlackTrees) mit insgesamt mehreren hundert Funktionen. (auch solche, wie z.B. ListUnion, HashtableToFile, etc.)
Ich sitze aber noch an ein paar letzten Funktionen, und vor allem an den Docs, deswegen bringt dir diese letzte Info bestimmt gar nix. /:->

Verfasst: 20.10.2004 23:02
von sbehrens
Oder du übergibst ein Wert (zB. 0,1,2,3,...) und jeder Wert wird halt einer bestimmten LL zugeordnet, wie wärs damit? Zwar etwas unelegant, aber klappt doch, wenn du dein Code ausreichend Kommentierst! :allright:

mfG
Basti