Dateiinhalt überprüfen



  • Hallo

    ich bin mir nicht sicher ob ich das hier richtig gepostet habe.
    Ihr kennt sicherlich download tools/ filesharing tools die vor dem runterladen einer datei eine leere datei erzeugen also speicher reservieren.

    ich habe es hier nun öfters mit dateien zu tun die unvollständig sind.

    ich möchte nun solche dateien auf vollständigkeit überprüfen.
    ich hab leider kein ansatz wie ich an die sache rangehen soll.

    wie macht man sowas oder ist sowas überhaupt möglich?

    danke!



  • Das wird wohl aufs Dateiformat ankommen ob das möglich ist.



  • Meinst du Prüfsummen? Die Tools bieten doch meist eine Prüfsumme (z.B. MD5) an. Damit könntest du dann deine Datei überprüfen.



  • hmm hab fast alle formate zur auswahl und nein leider gibt es keine prüfsumme.
    ich sag mal so. die dateien werden "mitgeschnitten".



  • Normalerweise gibts ne extra Datei in der drin steht welche Teile bereits vorhanden sind bei p2p Programmen. Immer wenn ein Teil fertig ist wird die Prüfsumme berechnet und abgeglichen. Wenns eben nicht übereinstimmt muss man es nochmals laden.



  • Morgen ThaMubber, die frage ist ja wie du das dann ohne Prüfsumme abgleichen willst. In diesem Fall müsstest du ja jeden Block doppelt herunterladen um zu schaun ob die Daten gleich sind.

    Kannst du vielleicht etwas näher erklären was du machen willst. P2P Sachen haben normalerweise Prüfsummen. Jedoch klingt "mitschneiden" eher nach Rippen von Audio-/Video-streams.



  • ich empfange die daten via sat.
    ist also kein fileshraing programm.

    es besteht nicht die nöglichkeit an prüfsummen ranzukommen.
    und doppelt kann ich die daten nicht runterladen.

    wenn dann muss ich mit den vorhandenen dateien ohne irgendwelche zusätzliche sachen was machen können.

    Normalerweise werden diese Dateien doch mit Nullen gefüllt und dann kommt der eigentliche Inhalt oder nicht?

    Könnte man da nicht was machen?



  • Ich nehme mal an, dass es sich bei den Daten um Binärdaten handelt. Damit kannst du keine einfachen Trenner verwenden. Du könntest aber eine einfach strukturiertes Format verwenden z.B.

    <Flag1><Daten1><Flag2><Daten2>...<FlagN><DatenN>
    

    Die Datenblöcke sind in diesem Fall alle gleich groß z.B. 1024 Byte oder so.
    Das Flag sagt nun aus ob der folgende Datenblock bereits geschrieben wurde oder noch "leer" ist. Durch die feste Blocklänge kannst du schnell innnerhalb der Datei zu einem gewünschten Flag/Datenblock springen.

    Du kannst das ganze natürlich auch in eine separate Datei auslagern und nur die eigendlichen Daten in der Datei halten. Eine extra Datei sagt dir dann welcher Block bereits geschrieben oder nicht geschrieben ist.


Anmelden zum Antworten