fb:porticula NoPaste
test_linkedlist.bas
Uploader: | ThePuppetMaster |
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!!!