Xmen2000 Geschrieben 10. Juni 2010 Geschrieben 10. Juni 2010 Hallo ich habe eine Binärdatei ca 55mb groß.Ich würde diese gerne per PHP Script auslesen,aber nur so das immer nur 4 stellen gelesen werden,diese dann in eine Text Datei geschrieben werden,dann die nächsten 4 stellen gelesen werden und in der TXT Datei einen neue Zeile beginnt in der die neuen 4 Stellen geschrieben werden. Naja ich hoffe ihr könnt mir da Helfen;) Vielen Dank im Voraus Zitieren
_n4p_ Geschrieben 10. Juni 2010 Geschrieben 10. Juni 2010 und was genau ist dir nicht klar dabei? mal ein kurzer wink mit dem zaun: PHP: fseek - Manual Zitieren
uenetz Geschrieben 11. Juni 2010 Geschrieben 11. Juni 2010 Was genau sind bei Dir die 4 Stellen. Wo beginnen diese? Sind die '4 Stellen' 4 unterschiedliche Positionen im File? Wieviele Zeichen sollen gelesen/geschrieben werden? Zitieren
Xmen2000 Geschrieben 11. Juni 2010 Autor Geschrieben 11. Juni 2010 Hallo erstmal Danke für die Antworten von euch. So mal ein bsp: 43454545454665656666666666666666666666666666666666666666 Also oben meine Binärdatei,es sollen jetzt in eine Text Datei wie folgt geschrieben werden. 4345 4545 4546 immer vier Stellen fortlaufend untereinander. Zitieren
_n4p_ Geschrieben 11. Juni 2010 Geschrieben 11. Juni 2010 möchtest du jetzt die fertige lösung? php bietet auch funktionen zum verarbeiten von dateien (fopen,fread,fseek,...) der grobe ablauf: zeichen aus datei lesen zeilenumbruch anhängen zeichen schreiben, nächste zeichen lesen was also ist das problem? Zitieren
Xmen2000 Geschrieben 13. Juni 2010 Autor Geschrieben 13. Juni 2010 Hallo erstmal Danke für deine Antwort. Ja ich weiss ich versuche es ungefähr so: $datei = "struct.bin"; $array = file($datei); echo $array[5]; $handler = fOpen($dateiname , "a+"); $dateiname = "test.txt"; fWrite($handler ,$array[5]); fClose($handler); $text = "array[5]\n"; $dateiname = "test.txt"; $handler = fOpen($dateiname , "a+"); fWrite($handler , $array); fClose($handler); [/PHP] So echo gibt er nur eine zeile aus er soll aber position 1 bis4 usw ausgeben. Naja hoffe du kannst mir bissl helfen:rolleyes: Zitieren
_n4p_ Geschrieben 13. Juni 2010 Geschrieben 13. Juni 2010 zum einen ist es ungünstig die 55MB datei per file() zu lesen hier besser fopen(); fread() benutzen. $array[5] is einfach die 5te zeile der datei. das $handler = fopen($dateiname, "a+"); dürfte fehlschlagen weil $dateiname noch gar nicht definiert ist. das lesen und schreiben sollte in einer schleife passieren, da es sonst ja nur genau einmal passiert. warum du $handler schließt um es dann wieder zu öffnen ist mir auch nicht klar und schon gar nicht warum du $array in die datei schreibst. allgemein, überleg dir sinnvolle namen für variablen. Zitieren
Xmen2000 Geschrieben 14. Juni 2010 Autor Geschrieben 14. Juni 2010 Ok das mit dem Handler hab ich auch gesehen.... Gibts vielleicht ein Tut wo genau das erklärt wird, da ich mich noch nicht lange damit beschäftige . Das mit der Schleife und der position. Zitieren
_n4p_ Geschrieben 14. Juni 2010 Geschrieben 14. Juni 2010 PHP: fread - Manual das letzte beispiel macht die grundlegende vorgehensweise deutlich. nur das du eine lokale datei ließt und nur jeweil 4byte statt 8kbyte. das was du ließt schreibst du gleich in die neue datei und hängst noch ein "\n" bzw "\r\n" oder auch PHP_EOL an. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.