Unterscheiden von Binär- und Text Dateien



  • Hi,

    ich stehe vor folgendem Problem: Ich soll ein Programm erstellen mit dem man nach vorher eingegebenen Zeichenketten in Dateien suchen soll. Dabei sollen nur Text- Dateien verwendet werden, also keine binären.
    Hat einer eine Idee wie ich vor,wäherend oder nach dem Öffnen der Datei überprüfen kann, ob es eine Binär oder Text- Datei ist???

    Wenn jemand eine Idee hat, wäre ich froh wenn er mir mal einen Tipp geben könnte, wie so etwas gehen, woran ich diese beiden Typen von Dateien unterscheiden kann (Will hier aber bitte keinen fertigen Quellcode haben, will das selber proggen, nur haben eben ka wie ich das anpacken soll)

    Also bin für eure Hilfe dankbar.

    Gruß
    Nebu



  • hi,

    schau mal hier nach, vielleicht hilft das:
    http://velociraptor.mni.fh-giessen.de/Programmierung/ProgII-htmldir/node10.html

    gruss
    msp



  • Garnich. Jede Datei ist irgendwie ne Binärdatei :). Man kann jede Datei als Binärdatei interpretiren. Eine Textdatei ist auch nur eine Binärdatei, in der man jedes Byte halt als ein zeichen interpretiert (bei ASCII). Das da bei einer Binärdatei nix sinvolles rauskommt is ne andere Frage. Der User muss schon acht darauf geben welche dateien er einließt. Das einzige was du tuen kannst, ist eine Datei auf Bytes zu durchsuchen, die nach ASCII code nicht dargestellt werden können. Aber eine Binärdati könnte auch nur aus lesbaren Zeichen bestehen (was allerdings im Allgemeinen sehr ungewöhnlich ist). Die können sogar einen Sinn ergeben. Alles zufällig



  • Hallo,

    ich denke du solltest immer 1 Byte der Datei einlesen und jede dieser Bytes auf ASCII-Zeichen prüfen, dazu gibts "int isascii(int c);" und "int iswascii(wint_t c);" aus den Dateien: ctype.h, wctype.h

    Aber wie mwoidt schon geschrieben hat - ne Garantie gibts auch dann noch nicht...

    Gruß,
    Robert



  • Ja mit dem Einlesen der Zeichen und dann zu schauen ob ASCI Zeichen oder nicht hatte ich auch schon überlegt, nur leider ist das, wie schon gesagt, nicht zuverlässig. Ich werde mal schauen was ich mache, wahrscheinlich klammere ich diesen Punkt erstmal aus und mache den Rest. Wenn ich, oder jemand anderes dann noch eine gute Idee hat, werde ich das dann ja auch noch einbauen können....

    Thx trotzdem
    Greez
    Nebu


Anmelden zum Antworten