Da ich derzeit eine neue Account-Funktion in Planung hab, wollte ich mit Hilfe von folgender Funktion testen inwiefern die Serials-Get-Funktion von Samp dafür tauglich ist. Daher habe ich folgende Funktion in mein Login-System geschrieben, die mal die Serials von den Spielern aufschreiben sollte:
new string[128],serial[256],readstring[2048],time[6],Zeit[128];
gettime(time[0],time[1],time[2]);
getdate(time[5],time[4],time[3]);
format(Zeit,128,"[%02d.%02d.%d] [%02d:%02d:%02d]",time[3],time[4],time[5],time[0],time[1],time[2]);
gpci(playerid,serial,sizeof(serial));
new File:srfile = fopen("Serials.txt",io_readwrite);
while(fread(srfile,readstring))
{
if(strfind(readstring,pnameg[playerid]) == -1)
{
new File:srfile2 = fopen("Serials.txt",io_append);
format(string,128,"Name: %s, Zeit: %s, Serial: %s \r\n",pnameg[playerid],Zeit,serial);
fwrite(srfile2,string);
fclose(srfile2);
}
else if(strfind(readstring,serial) == -1)
{
new File:srfile3 = fopen("Double-Serials.txt",io_append);
format(string,128,"Name: %s, Zeit: %s, Serial: %s \r\n",pnameg[playerid],Zeit,serial);
fwrite(srfile3,string);
fclose(srfile3);
}
}
fclose(srfile);
Das Problem hierbei ist, dass die Funktion, sobald ein paar mehr Serials in der Datei stehen, anfängt die neuen pro Login ewig oft aufzuschreiben. Ich habe die Funktion gestern installiert und erstmal so gelassen, und heute war die Datei auf einmal !! 96 MB !! groß weil er das ganze gegen Ende ca. 1000 mal pro Login aufgeschrieben hat. Da ich einfach nicht drauf komme woran das liegt wollte ich einfach mal hier fragen. Hier sind keine Ratschläge/Diskussionen über die Serials-Funkton erwünscht, es geht nur um das Filewriting System.
PS: "pnameg" enthält den Namen des Spielers, als Array gespeichert.