Abfrage Text- oder Binärdatei?



  • Hallo,

    weiß jemand von euch, wie ich eine solche Abfrage machen kann?
    <Pseudocode>
    [code]
    if (Textdatei) {
    //...
    }
    else if (Binärdatei) {
    //...
    }
    [/cpp]
    also ob Dateien ein eindeutiges Merkmal haben, an dem man erkennen kann, ob es sich um Text- oder Binärdateien handelt (unter UNIX) oder eine Funktion, die dies anhand eines bestimmten Inhalts ermitteln? Vielen Dank! 🙂


  • Mod

    Du suchst vermutlich die libmagic.



  • beginner123 schrieb:

    also ob Dateien ein eindeutiges Merkmal haben, an dem man erkennen kann, ob es sich um Text- oder Binärdateien handelt

    Nein, so etwas gibt es nicht.
    Wofür musst du das denn feststellen?


  • Mod

    TyRoXx schrieb:

    Nein, so etwas gibt es nicht.

    Doch!
    http://en.wikipedia.org/wiki/File_(command)
    Man will das nur sicherlich nicht selber machen. Falls doch, wäre ein Unterscheidungsmerkmal, ob die Datei überwiegend aus Buchstaben und Zahlen besteht oder nicht. Wobei man noch definieren muss, was überwiegend heißt.



  • ja, so was mit Magic-Numbers und dem file-Kommando suche ich! 🙂 Ich habe die Inhalte von mehreren Dateien in einem vector abgelegt, möchte diese durchgehen und prüfen, ob es Binär- oder Textdateien sind, um den Inhalt anschließend in eine Datei schreiben zu können und dies mit der richtigen Funktion zu tun (habe eine für Schreiben als Binär- und eine für Schreiben als Text-Datei).

    Gibt's für file eine Option, dass ich nicht nur den genauen Dateityp (also z.B. pdf, jpeg,...) ausgegeben bekomme, sondern auch, ob es eine T. oder B.-Datei ist?
    Mir fällt sonst nur ein, nach magic-numbers abzuprüfen, aber dann muss ich sozusagen mit festgelegten Werten arbeiten, die ich vorher definieren muss und es ist nicht mehr wirklich "dynamisch"...



  • beginner123 schrieb:

    Ich habe die Inhalte von mehreren Dateien in einem vector abgelegt, möchte diese durchgehen und prüfen, ob es Binär- oder Textdateien sind, um den Inhalt anschließend in eine Datei schreiben zu können und dies mit der richtigen Funktion zu tun (habe eine für Schreiben als Binär- und eine für Schreiben als Text-Datei).

    Warum gibt es da verschiedene Funktionen?


Anmelden zum Antworten