fopen resultiert in Servercrash. Wie umgehen?

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 aktualisiere gerade mein dynamicReport auf v1.12 und habe dabei eine kleine Frage.


    Wenn ich fopen an Dateien nutze, die nicht existieren, crasht der Server. Also wie kann ich überprüfen, ob eine bestimmte Datei existiert?
    Hier der aktuelle Code, mit dem ich Dateien schreibe:
    format(path, 68, "/%s/num.txt", dini_path);
    new File:num = fopen(path, io_readwrite), text[256], numb[16];
    fread(num, numb);
    print(numb);
    fclose(num);
    num = fopen(path, io_write);
    if(strlen(numb)<1) fwrite(num, "1");
    else
    {
    format(text, 5, "%i", strval(numb)+1);
    fwrite(num, text);
    }
    fclose(num);
    format(path, 68, "/%s/%i.txt", dini_path, strval(numb)+1);
    new File:report = fopen(path, io_readwrite);
    format(text, 256, "reporter=%s\r\nsubject=%s\r\nreason=%s\r\ndescription=%s\r\ntime=%s", pName, sName, reason, description, date);
    fwrite(report, text);
    fclose(report);
    Wenn ich den Code so schreibe, dann erstellt er ja Dateien wie folgt: 1.txt, 2.txt, 3.txt, 4.txt, 5.txt ...
    Wenn ich dann allerdings die 2.txt lösche und alle auslesen möchte, würde mein Server crashen.
    Also gibt es da eine Möglichkeit das zu umgehen? Bitte nicht mit "nutze dini oder MySQL" kommen, ich nutze 3 Dateispeicherungsmethoden im dynamicReport. dini und MySQL sind dort auch verarbeitet.


    Mit freundl. Grüßen
    Padarom

    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

  • Wäre es ne Möglichkeit, wenn du die Datei 2 nicht löscht sondern leerst?

  • Wäre auch eine gute Möglichkeit, aber wenn der Serveradmin beispielsweise ein paar Reports aufräumt und löscht, sollen die Dateien trotzdem ohne Crash ausgelesen werden können.
    Natürlich nur sofern das irgendwie möglich ist. Ansonsten mach' ich das so.

    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

  • Ah danke, ist wirklich was ich suche^^
    Wusste nur nicht, dass die Funktion existiert, weil in der File-Documentation davon keine Rede war.

    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