HSA - Einfaches, schnelles Speichern!

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,
    hier meine neuste include - HSA.


    HSA ist die wohl einfachste Art Daten in einer Datei zu speichern.
    Es gibt jeweils eine Funktion zum Lesen und eine zum Schreiben von Strings, Integer und Floats.
    Natürlich hat HSA einige Vorteile zu anderen Includes, die zum Speichern vorgesehen sind.

    • HSA ist sehr einfach zu bedienen!
    • HSA ist im Normalfall schneller als andere Systeme
    • HSA sichert die Daten automatisch
    • Weitere Vorteile werden mit Updates kommen...

    Hier ein Geschwindigkeitsvergleich von HSA zu SII. Dabei wurden 10 mal 100 Einträge hintereinander in eine Datei geschrieben und wieder ausgelesen.
    Aus den Werten wurde das arithmetische Mittel bestimmt.


    Man erkennt deutlich, dass HSA im Gegensatz zu SII wesentlich schneller ist!



    Nun zu den Funktionen:

    • getInt:
      getInt:"DateiName"("DatensatzName");
      Gibt die gespeicherte Zahl "DatensatzName" in der Datei "DateiName" zurück.


    • getFloat:
      getFloat:"DateiName"("DatensatzName");
      Gibt die gespeicherte Kommazahl "DatensatzName" in der Datei "DateiName" zurück.


    • getString:
      getString:"DateiName"("DatensatzName");
      Gibt den gespeicherten Text "DatensatzName" in der Datei "DateiName" zurück.


    • setInt:
      setInt:"DateiName"("DatensatzName",12356789);
      Speichert die Zahl "12356789" in die Datei "DateiName" unter dem Namen "DatensatzName";


    • setFloat:
      setFloat:"DateiName"("DatensatzName",1234.56789);
      Speichert die Kommazahl "1234.56789" in die Datei "DateiName" unter dem Namen "DatensatzName";


    • setString:
      setString:"DateiName"("DatensatzName","Beliebiger Text");
      Speichert den Text "Beliebiger Text" in die Datei "DateiName" unter dem Namen "DatensatzName";


    Mehr Funktionen benötigt das System nicht!
    Dateien werden natürlich automatisch erstellt.



    Beispielcodes:

    • Einfaches Speichern von Spielern:
      new PlayerName[MAX_PLAYER_NAME];
      GetPlayerName(playerid,PlayerName,MAX_PLAYER_NAME);


      setString:PlayerName("Passwort","Ich mag Züge");
      setInt:PlayerName("Bargeld",4125);
      setFloat:PlayerName("Leben",74.12);


      printf("Der Spieler %s hat das Passwort %s",PlayerName,getString:PlayerName("Passwort"));
      printf("Der Spieler %s hat noch %d$ Bargeld.",PlayerName,getInt:PlayerName("Bargeld"));
      printf("Der Spieler %s hat noch %f Leben.",PlayerName,getFloat:PlayerName("Leben"));

    • Einfache Fraktionskassen:

      setInt:"Fraktionskassen"("Polizei",81921);
      setInt:"Fraktionskassen"("Feuerwehr",56121);
      setInt:"Fraktionskassen"("Yakuza",1912);
      setInt:"Fraktionskassen"("Lufthansa",917251);


      printf("Die Polizei hat %d$ in der Fraktionskasse",getInt:"Fraktionskassen"("Polizei"));
      printf("Die Feuerwehr hat %d$ in der Fraktionskasse",getInt:"Fraktionskassen"("Feuerwehr"));
      printf("Die Yakuza hat %d$ in der Fraktionskasse",getInt:"Fraktionskassen"("Yakuza"));
      printf("Die Lufthansa hat %d$ in der Fraktionskasse",getInt:"Fraktionskassen"("Lufthansa"));


    Wann war das Speichern von Daten jemals so einfach?



    Links:

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

    Einmal editiert, zuletzt von |-|auke ()

  • Ich war selbst etwas überrascht, aber bei den 10 Durchläufen von 100 mal Schreiben und Lesen kamen folgende Werte:
    [table=2]
    [*]HSA[*]SII
    [*]144,689[*]245,143
    [*]135,716[*]214,743
    [*]164,893[*]210,309
    [*]146,27[*]222,282
    [*]143,056[*]238,719
    [*]140,403[*]234,562
    [*]126,504[*]232,638
    [*]148,228[*]238,064
    [*]146,012[*]256,775
    [*]125,678[*]227,304
    [/table]
    Edit: Dass diese Werte in ms sind, versteht sich wohl von selbst.


    Danke :)

    PAWNit gratis nutzen?
    Geschenkcode: 2017VQXPKB8V3KA

    Hier könnte Ihre Werbung stehen.

  • Sehr sehr gut Hauke.
    Nicht schlecht. LOD wäre das ultimative Projekt geworden:O

  • Sehr gut gemacht Hauke,
    werde ich wohl in zukünftigen Projekten nutzen.


    Was ich aber noch gut fände, wäre die Möglichkeit zu überprüfen, ob eine solche Datei bereits existiert (check:"Dateiname" z.B.).

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Wieso ist denn dini so schlecht?
    Die Schnelligkeit wird wohl auch nicht viel schlechter sein als bei HSA, oder?
    Von der Übersichtlichkeit und Bedienbarkeit ist es jedenfalls nicht schlecht, anders als yini und dergleichen.


    EDIT: Ich hab nur ganz kurz reingeschaut, aber werden die Werte ohne Abstand gespeichert?
    Das wäre dann relativ blöd, wenn man da z.B. "Besitzerflash" in der Datei stehen hat.
    Ist das wirklich so, oder hab ich mich nur verlesen?

    Professioneller Webentwickler.

  • Die Schnelligkeit wird wohl auch nicht viel schlechter sein als bei HSA, oder?


    Du machst Witze oder?


    Ich mach nachher mal nen speed test, dann siehste wie schlecht dini im gegensatz du HSA und SII ist

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Habe mal was Versucht mit dem Speichern.
    Ich war bis vor kurzem dabei ein System zuscripten, was ich aber irgendwie nicht Speichern konnte etc pp.
    Habe mal deine Include ausprobiert, und es klappt tatsächlich wunderbar !
    danke dir |-|auke :love:

  • Hammer geil, Hauke du bist echt einer der Besten Scipter hier, du hast meinen vollen Respekt. Also ist das so zusagen wie mit einem enum oder PVar die spieler zu Speichern??. Oder wie kann man das Verstehen.

    Die Kritik an anderen hat noch keinem die eigene Leistung erspart.

    – Noël Coward