fb:porticula NoPaste
test_saveload.bas
Uploader: | ThePuppetMaster |
Datum/Zeit: | 22.04.2009 09:54:41 |
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 "Save"
List.SaveLL("test.lld") 'Die Linkedlist als LLD abspeicher.
'Das LLD Format ist eine eigenentwicklung, sehr kompackt und schnell
'!!! Vorsicht !!!
'Any-PTR Daten können NICHT! abgespeichert werden! Hier wird eine "0"
'als Datenwert angenommen.
Print
Print
Print "Clear"
LL_Destroy(List) 'Die LinkedList zerstören / bzw. löschen / leeren
Print
Print
Print "Load"
If List.LoadLL("test.lld") <> 0 Then 'LLD-Daten wieder in LinkedList einlesen.
'Die LinkedList wird hier automatisch geleert!
'Soll dies nicht erfolgen, kann das mit einen "0" nach
'der Pfadangabe signalisiert werden.
'
'Ist die Rückgabe <> 0 dann sind Fehler aufgetreten!
Print "FEHLER! Es wurden Daten eingelesen, jedoch könnten diese beschädigt sein!"
End If
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 "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!!!