Filesystem ~ Datei einlesen / bearbeiten / neuschreiben

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 ihr Brotfische <3 lecker !
    Ich überlege seit genau 2 tagen wie ich es schaffen kann aus einer datei mit den folgenden aufbau!

    Spieler1|10|
    Spieler2|0|
    Spieler3|9|
    Spieler4|5|
    Spieler5|0|
    Spieler6|3|

    das alle Spieler mit |0| gelöscht werden !
    also das am ende die Datei so aussieht !

    Spieler1|10|
    Spieler3|9|
    Spieler4|5|
    Spieler6|3|


    Mein vorhaben ist es alle spieler in eine datei zu speichern und nach jeden GMX soll der Gamemode einmal überprüfen ob genau diese zahl hinter den namen 0 ist !
    damit dieser gelöscht wird!


    nur genau das bekomme ich nicht hin weil ich will nur das diese eine zeile gelöscht wird ich hoffe ihr könnt mir mit wenig Quellcode helfen! 8o

    Opa :love: Freund und helfer =)

  • Sowas?new File:x = fopen("name.txt",io_readwrite);
    new string[256];
    while(fread(x, string))
    {
    if(strcmp(string, "|0|", true)==0)
    {
    fdeleteline("name.txt",string);
    }
    }
    fclose(x);


    Du brauchst halt den fdeleteline / fcreate code

  • habe die lösung schon gefunden !
    womit mein vorhaben klappt es zwar wohl nur zueinfach das ich es gesehen habe !


    new zeile[255];
    new file[10000];
    new spieler[3][255];
    new File:testdatei = fopen("test.ini",io_read);
    while(fread(testdatei,zeile))
    {
    DATEISYSTEM_AUFTEILEN(zeile,spieler,'|');
    if(!strfind(spieler[1],"0",true))
    {
    strdel(zeile,0,255);
    }
    else
    {
    strcat(file,zeile);
    }
    }
    fclose(testdatei);

    testdatei = fopen("test.ini",io_write);
    fwrite(testdatei,file);
    fclose(testdatei);


    Funktion
    stock DATEISYSTEM_AUFTEILEN(const strsrc[], strdest[][], delimiter)
    {
    new i, li,aNum,len;
    while(i <= strlen(strsrc)){
    if(strsrc[i]==delimiter || i==strlen(strsrc)){
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;
    }

    Opa :love: Freund und helfer =)