[Linux] Probleme mit Zeilenumbruch beim 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


    Ich habe ein Problem. Ich habe ein System geschrieben, welches die Fraktionskasse und 5 Blacklistnamen ausliesst. Unter Windows geht das fehlerfrei und die Datei wird richtig gespeichert/bespeichert. Unter Linux kommt aber immer ein zusätzlicher Zeilenumbruch hinzu, dazu später mehr. Hier ist mal der Code:


    #include <a_samp>
    #include <sscanf2> //Sscanf 2.0
    #define FRAKTION_DATEI "Systemdaten/Fraktionen.ini"
    #define MAX_FRAKTIONEN 17


    forward SaveFraktionen();


    enum FInfo
    {
    FBetrag,
    Blacklist1[30],
    Blacklist2[30],
    Blacklist3[30],
    Blacklist4[30],
    Blacklist5[30]
    }
    new FraktionInfo[MAX_FRAKTIONEN][FInfo];


    public OnFilterScriptInit()
    {
    //Fraktionskasse und Blacklist
    new id = 0, geld, name1[30],name2[30],name3[30],name4[30],name5[30];
    new File:fop = fopen(FRAKTION_DATEI,io_read);
    new eingabe[256];
    if(fop)
    {
    while(fread(fop,eingabe))
    {
    sscanf(eingabe,"p<,>is[30]s[30]s[30]s[30]s[30]",geld,name1,name2,name3,name4,name5);
    printf(eingabe);
    printf("%d",geld);
    printf(name1);
    printf(name2);
    printf(name3);
    printf(name4);
    printf(name5);
    FraktionInfo[id][FBetrag] = geld;
    strmid(FraktionInfo[id][Blacklist1],name1,0,20,20);
    strmid(FraktionInfo[id][Blacklist2],name2,0,20,20);
    strmid(FraktionInfo[id][Blacklist3],name3,0,20,20);
    strmid(FraktionInfo[id][Blacklist4],name4,0,20,20);
    strmid(FraktionInfo[id][Blacklist5],name5,0,20,20);
    id++;
    }
    fclose(fop);
    }
    return 1;
    }


    public OnFilterScriptExit()
    {
    SaveFraktionen();
    return 1;
    }


    public SaveFraktionen()
    {
    new fm[256];
    new File:kassenx = fopen(FRAKTION_DATEI,io_write);
    for(new i = 0;i<MAX_FRAKTIONEN;i++)
    {
    format(fm,sizeof(fm),"%d,%s,%s,%s,%s,%s\r\n",
    FraktionInfo[i][FBetrag],
    FraktionInfo[i][Blacklist1],
    FraktionInfo[i][Blacklist2],
    FraktionInfo[i][Blacklist3],
    FraktionInfo[i][Blacklist4],
    FraktionInfo[i][Blacklist5]);
    fwrite(kassenx,fm);
    printf(fm);
    }
    fclose(kassenx);
    }


    Wie gesagt unter Windows geht es. Nun, so sieht die Datei nach einem fehlerhaften Abspeichern aus: http://pastebin.com/ekbfKqbx
    Hier die Serverlog: http://pastebin.com/zf57mku7


    Ich bin etwas ratlos, da ich die anderen Speichersysteme eigentlich gleich aufgebaut habe und die gehen :)
    MfG dUDA