Buchempfehlung
Windows System Programming
Windows System Programming
Das Kompendium liefert viele interessante Informationen zur Windows-Programmierung auf Englisch. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

mehrdimensional.bas

Uploader:MitgliedThePuppetMaster
Datum/Zeit:13.04.2008 17:08:25

'##############################################################################################################
' LinkedList-Beispiel: Collection
'##############################################################################################################

'Dieses Beispiel zeigt die Bildung einer mehrdimensionalen Collection mit der LinkedList.


'Zuerst müssen wir das Modul includieren, das uns die ganzen Funktionen zur LinkedList
'Steuerung bereit stellt.
#include "linkedlist.bi"


'einen Handel-Pointer für die LinkedList erstellen
Dim shared G_Liste as integer PTR


'Noch kurz zwei Variable die wir im Programm brauchen, erstellen
Dim X as UInteger
Dim Y as UInteger
'Eine Variable für eine neue Liste erstellen
Dim T_Ptr as Integer PTR = 0



'Jetzt erstellen wir das grundgerüst der mehrdimensionalen Liste ... die erste Dimension,
'wenn man so sagen mag ( wir bilden einfahc mal 3 elemente, damit die ausgabe nicht zu gross wird
For X = 1 to 3
    'Einen neues Element an die Liste anhängen. Hier nutzen wir die leere ListID (0)
    ColAdd(G_Liste, T_PTR)
Next


'jetzt können wir die 2te Dimension erstellen. Hier nehmen wir mal 5 Elemente
For X = 1 to 3
    For Y = 1 to 5
        'Zuerst hohlen wir den Pointer der 2ten Dimension und speichern dann in diese den Wert hinein
        ColAdd(ColGetIntPTR(G_Liste, X), Str(X) & "-" & Str(Y))
    Next
Next


'Zu guter letzt gehen wir alle elemente durch udn geben sie aus.
For X = 1 to ColCount(G_Liste)
    'Damit wir die abfrage beschleunigen können speichern wir den Pointer temporär zwischen.
    T_PTR = ColGetIntPTR(G_Liste, X)
    'Dann gehen wir alle elemente der 2ten Diemension durhc ung geben sie aus.
    For Y = 1 to ColCount(T_PTR)
        Print ColGetStr(T_PTR, Y)
    Next
Next



'Dies kann man natürlich auch auf x beliebige dimensionen erweitern.
'Es müssen auch nicht alle elemente in jeder Dimension gefüllt sein. Das erstellen einer dimension
'jetzt dies nicht vorraus.

'Aber, ich schlage vor, man probiert es einfach mal selbst aus.



'===============================================================================================================

'WICHTIG ist zu wissen, das solche mehrdimensionalen Listen auch speicherzugriffsfehler erzeugen können!
'Man sollte sich hierbei vor augen halten, das mit Pointer gearbeitet wird, und daher sollte man IMMER
'auf die richtige Variable achten, und deren konsistenz sicherstellen!!

'===============================================================================================================