Veröffentlicht 10. Juni 201015 j 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
10. Juni 201015 j und was genau ist dir nicht klar dabei? mal ein kurzer wink mit dem zaun: PHP: fseek - Manual
11. Juni 201015 j 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?
11. Juni 201015 j 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.
11. Juni 201015 j 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?
13. Juni 201015 j 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:
13. Juni 201015 j 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.
14. Juni 201015 j 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.
14. Juni 201015 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.