Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [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

test_linkedlist.bas

Uploader:MitgliedThePuppetMaster
Datum/Zeit:01.04.2009 08:26:16
Hinweis: Dieser Quelltext ist Bestandteil des Projekts Linked List, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.

'Soll die LinkedList Thread-Save Kompiliert werden (wenn mehrere Threads auf die selbe Linked List zugreifen könnten)
'dann sollte die folgende Definition hinzugefügt werden
#define LL_DEF_ThreadSafe                                               'Compiler-Direktive für THREAD-Safe-LinkedList angeben



#include once "linkedlist.bi"                                           'Die Funktionen zur Linkedlist verwaltugn includieren



Dim List as LinkedList                                                  'Eine neue Variable erstellen, welche die LinkedList speichert
Dim TItem1 as LinkedList                                                'Itemvariable
Dim TItem2 as LinkedList                                                'Itemvariable



Print
Print
Print "Add"
For X as UInteger = 1 to 5                                              '5 Einträge hinzufügen
    TItem1 = List.Add("Test_" & Str(X))                                 'Einen neuen Eintrag hinzufügen
    Print " "; List.Count                                               'Anzahl Einträge ausgeben
    For Y as UInteger = 1 to 3                                          '3 Einträge zum eintrag X hinzufügen
        TItem2 = TItem1.Add("Test_" & Str(X) & "_" & Str(Y))            'Einen neuen Eintrag hinzufügen
        Print "  "; TItem1.Count                                        'Anzahl Einträge ausgeben
    Next
Next



Print
Print
Print "Print"
For X as UInteger = 1 to List.Count                                     'Alle Einträge durchgehen
    TItem1 = List.Item(X)                                               'Eintrag mit Indexnummer X ausgeben
    Print " "; TItem1.Text                                              'Text ausgeben
    For Y as UInteger = 1 to TItem1.Count                               'Alle Einträge durchgehen
        Print "  "; TItem1.Item(Y).Text
    Next
Next



Print
Print
Print "Index"
For X as UInteger = 1 to List.Count                                     'Alle Einträge durchgehen
    TItem1 = List.Item(X)                                               'Eintrag mit Indexnummer X ausgeben
    Print " "; TItem1.Text; "  "; TItem1.Index; "  "; TItem1.Datatype; "  "; LL_DatatypeName(TItem1.Datatype)   'Text, Index und Datentyp ausgeben
    For Y as UInteger = 1 to TItem1.Count                               'Alle Einträge durchgehen
        Print "  "; TItem1.Item(Y).Text; "  "; TItem1.Item(Y).Index; "  "; TItem1.Item(Y).Datatype; "  "; LL_DatatypeName(TItem1.Item(Y).Datatype)
    Next
Next



Print
Print
Print "Del"
For X as UInteger = 1 to List.Count                                     'Alle Einträge durchgehen
    TItem1 = List.Item(X)                                               'Eintrag mit Indexnummer X ausgeben
    Print " "; TItem1.Count                                             'Anzahl einträge ausgeben
    TItem1.Del(1)                                                       'Erstes Element löschen
    Print " "; TItem1.Count                                             'Anzahl einträge ausgeben
Next



Print
Print
Print "Valid"
For X as UInteger = 1 to List.Count                                     'Alle Einträge durchgehen
    If List.Item(X).LLPtr <> 0 Then                                       'Prüfen ob Eintrag vorhanden ist
        Print "valid!"
    Else: Print "INVALID!"
    End If
Next



Print
Print
Print "Clear"
For X as UInteger = 1 to List.Count                                     'Alle Einträge durchgehen
    TItem1 = List.Item(X)                                               'Eintrag mit Indexnummer X ausgeben
    Print " "; TItem1.Count                                             'Anzahl einträge ausgeben
    TItem1.Clear                                                        'ALLE Element löschen
    Print " "; TItem1.Count                                             'Anzahl einträge ausgeben
Next



Print
Print
Print "Destroy"
LL_Destroy(List)                                                        'Die LinkedList zerstören
                                                                        'DAS IST ZWINGEND EERFODERLICH!, da sonst Speicher-leaks auftreten!

If List.LLPtr <> 0 Then
    Print "LISTE EXISTIERT NOCH!"
Else: Print "Liste erfolgreich zerstört!"
End If

'Nach dem zerstören ist die LinkedList leer! Wird anschliessend wieder ein Eintrag hinzugefügt (ADD), wird sie automatisch erstellt und MUSS!!!!!!!
'erneut "Destroy"'t werden!!!