[Settings] Prog="1" ;Wir wollen ja einen Fortschrittsbalken sehen AddFile="Beispiel.bb" ;und eine Code-Datei soll auch durchgearbeitet werden. [/Settings] [DataBank];Wie erstellen eine neue Databank-Art Name="Bank1";Die hat natürlich auch einen Namen Ini="1";Wir aktivieren die Ini-Funktionen Bin="1";und die Bytecode-Funktionen [Once];Die nächsten Variablen gibt es ein einziges mal pro Bank. [NewInt];Diese Variable wird ein Integer, Name="Int";hat auch einen Namen Value="%101010";und einen ganz bekannten Standardwert. [Multiple];Nun bestimmen wir die Daten der Datensätze/Einträge. [NewInt];no comment... Name="Int" Value="Millisecs()";Huch! Was soll ein Integer mit einem String? Reference="1";Hier ist die Lösung: alle mit dem selben Aufruf erstellten Funktionen bekommen den selben Startwert; dies ist hier die Zeit des Aufrufs. Ini="0";Diese Variable wollen wir weder in der Ini noch im Bytecode speichern. Bin="0" [NewInt] Name="Int2" Value="Create(Bank2)";DBPC-Befehle darf man auch nutzen. Reference="2";und jeder Eintrag bekommt seinen eigenen Wert. [NewString];Andere Datentypen haben auch etwas. Name="BlaBla" Value="GlobalString$+"&":GlobalString$=GlobalString$+Rand(0,9):Delay 100";Reference="2" lässt sich gut ausnutzen... Reference="2" [/DataBank] [DataBank];Und auf ein Neues... Name="Bank2" [Once] [NewByte] Name="Müll" [/DataBank] |
Global GlobalString$="1" Local Bank=Create(Bank1);Eine Databank erstellen Add(Bank1,Bank);Einen Eintrag hinzufügen Add(Bank1,Bank,2);Zwei Einträge hinzufügen Print Get(Bank1,Bank,Int);Einen wert auslesen Set(Bank1,Bank,Int,41);Einen Wert ändern Print Get(Bank1,Bank,Int) Print Get(Bank1,Bank,Int,0) Local Offset For Offset=EachIn(Bank1,Bank);Alle Einträge durchgehen Local ID=GetID(Bank1,Offset);ID zum Offset bestimmen Print "Eintrag "+ID Print "Offset "+Offset(Bank1,ID);Offset zur ID bestimmen Print Peek(Bank1,Bank,Int,Offset);Einen Eintrag auslesen Poke(Bank1,Bank,Int,MilliSecs(),Offset);Einen Eintrag setzten Print Peek(Bank1,Bank,Int,Offset) Print Peek(Bank1,Bank,Int2,Offset) Print Peek(Bank1,Bank,BlaBla,Offset) Next WaitKey Swap(Bank1,Bank,0,1);Zwei Einträge tauschen. For Offset=EachIn(Bank1,Bank) Print Peek(Bank1,Bank,BlaBla,Offset) Next WaitKey Insert(Bank1,Bank,2,1);Einen Eintrag verschieben For Offset=EachIn(Bank1,Bank) Print Peek(Bank1,Bank,BlaBla,Offset) Next WaitKey Copy(Bank1,Bank,0,Bank,1);Daten eines Eintrags in einen anderen hineinkopieren. For Offset=EachIn(Bank1,Bank) Print Peek(Bank1,Bank,BlaBla,Offset) Next WaitKey Local File=WriteFile("Test.ini") WriteLine File,"[Bank1]";Die erste Zeile der Ini-Einträge wird nicht von den Funktionen geschrieben/gelesen. Save(Bank1,Bank,File,0);Bank speichern WriteLine File,"[/Bank1]" CloseFile File Free(Bank1,Bank);Bank löschen Bank=Create(Bank1) File=ReadFile("Test.ini") ReadLine File Load(Bank1,Bank,File,"/Bank1",1);Bank laden, vorhandene Einträge werden nicht gelöscht. CloseFile File For Offset=EachIn(Bank1,Bank) Print Peek(Bank1,Bank,BlaBla,Offset) Next WaitKey File=WriteFile("Test.dat") SaveBin(Bank1,Bank,File);Bank speichern CloseFile File Free(Bank1,Bank);Bank löschen Bank=Create(Bank1) File=ReadFile("Test.dat") LoadBin(Bank1,Bank,File);Bank laden, vorhandene Einträge werden nicht gelöscht. CloseFile File For Offset=EachIn(Bank1,Bank) Print Peek(Bank1,Bank,BlaBla,Offset) Next WaitKey Remove(Bank1,Bank,0,2);Zwei Einträge entfernen Print CountEntries(Bank1,Bank)+" Einträge";Einträge zählen For Offset=EachIn(Bank1,Bank) Print Peek(Bank1,Bank,BlaBla,Offset) Next WaitKey Free(Bank1,Bank);Bank löschen End |