Hallo Leute,
da MiniYoda zurzeit an unseren gemeinsamen Script arbeitet und mich etwas die langeweile geplagt hat, habe ich ein File System gebastelt
Dieses File System ist Cached Based. Das heißt alle Werte, String´s und Floats werden beim öffnen der TextDatei in einem Array geladen.
Dies dient dazu um Werte, Strings oder Float´s schneller abzurufen.
Funktionen:
native ri_Create(File[]); // - Erstellt eine Datei
native ri_Open(File[]); // - Öffnet eine Datei aus der man was auslesen möchte oder was einfügen möchte.
native ri_Close(); // - Schließt die Datei
native ri_Save(); // - Speichert die Werte, Strings und Float´s die sich in die Cache befinden in die Datei
native ri_ReadString(Var[], str[]); // Liest einen String aus der Datei
native ri_ReadInt(Var[]); // Liest einen Wert aus der Datei
native ri_ReadFloat(Var[]); // Liest einen Float aus der Datei
native ri_WriteString(Var[], str[]); // Schreibt einen String in die Datei
native ri_WriteInt(Var[], inte); // Schreibt einen Wert in die Datei
native ri_WriteFloat(Var[], Float:f); // Schreibt einen Float in die Datei
native ri_Remove(File[]); // Löscht eine Datei
//Version 1.1.0 Neue Funktionen
native ri_Duplicate();//Verdoppelt die geöffnete Datei (Daraus kann man dann ein Backup System schreiben)
native ri_Debug();//Damit auch Scriptinganfänger zurecht kommen wird nun jeder Fehler aufgelistet der Ordner "ri" muss in den Scriptfiles exestieren.
native ri_Delline(Var[]);//Löscht eine Linie aus der Datei.
Alles anzeigen
Beispiel Sachen aus einer Datei lesen.
if(ri_Open("Test.txt"))
{
new str[128];
ri_ReadString("Feld", str); // Liest einen String aus und verpackt ihn in "str"
new i = ReadInt("Feld"); // Liest einen Wert aus und verpackt ihn in "i"
new Float:x=ReadFloat("Feld"); // Liest einen Float aus und verpackt ihn in "x"
}
else print("Datei konnte nicht geladen werden.");
Beispiel eine Datei Erstellen und was eintragen:
ri_Create("Test.txt");
if(ri_Open("Test.txt"))
{
ri_WriteString("Feld", "Test"); // In der Datei sieht es so aus " Feld=Test "
ri_WriteInt("Feld2", 1); // In der Datei sieht es so aus " Feld=1 "
ri_WriteFloat("Feld3", 0.0); //In der Datei sieht es so aus " 0.000000 "
ri_Save();
ri_Close();
}
else print("Datei konnte nicht geladen werden.");
Ganz wichtig: Wenn ihr etwas in einer Datei schreibt müsst ihr diese Datei bevor ihr sie mit "ri_Close" schließt mit "ri_Save" Updaten sonst werden die eingetragenen Sachen verworfen.
Download:
Das File System wurde nur Grob getestet. Fehler können deshalb auftreten werden aber so schnell wie möglich behoben.
Ich habe keinen schönen Text geschrieben das weiß ich, allerdings stehe ich gerade derbe unter Zeitdruck.
In der nächsten Version geplant:
Integriertes BackupSystem verdoppelt die Datein im Ordner ri/Backups
Edit{1]: Bug behoben
Edit[2]: [color=#00ff00]Updated Version 1.1.0 veröffentlicht