Leider muss ich dir sagen, dass du das ganz überarbeiten solltest, denn ich habe mir den Code angeguckt und kann dir schonmal sagen, dass du noch einiges dran machen müsstest. Allerdings muss ich sagen, dass du noch beachten müsstest, dass du wascheinlich nicht (auf die schnelle) eine bessere Leistung erziehlen wirst als Y_Less, da er sich mit solchen Sachen auseinander gesetzt hat.
So zu deinem größten Fehler:
stock file_set_contents(Pfad[], text[])
{
new File:f;
if(fexist(Pfad)) f = fopen(Pfad, io_append);
else f = fopen(Pfad, io_write);
fwrite(f, text);
fclose(f);
return 1;
}
Das hier ist ein ernstes Problem. Denn sobald die Datei schon vorhanden sind, werden Strings dazu adiert. Wenn man die 'Speicherung' mehrere male benutzt, hat man die selben Variablen wieder und wieder drinne. Ich bin mir echt nicht sicher, was du dir hierbei gedacht hast.
- Ausserdem, hast du deine Speicherung massiv limitiert, durch deinen 'Buffer'. Falls jemand eine Datei hat, wo zum Beispiel texte gespeichert werden, ist dein System immernoch Fehlerhaft.
- Dazu hast du noch 'getint' vergessen.
Das System ist fehlerhaft, undurchdacht und unfertig. Ich denke, du solltest noch alles von Grund auf überarbeiten. Ausserdem würde ich strtok raushauen und lieber sscanf benutzen, damit kannst du auch sehr einfach und schnell 'getint' und 'getfloats' machen, die deine Leistung noch verbessern könnten.
Daher, an sich gute Absicht, doch leider bisl zu voreilig.
2/10
2 Punkte für die Mühe und die Idee nen neues Filesystem zu schreiben. -8 für fehlerhaft, unvollständig und undurchdachtheit.
Bin ma gespannt, ob du es durchziehst oder ob du schon aufgiebst.