Mailinglisten-Archive |
Einfaches Beispiel: In der Datei steht: 0a 00 00 00 00 00 00 00 0c f3 00 00 Da Programme in der Regel bei Schreiben von "4-Byte Wörtern" nach dem Schema Low-Byte - High-Byte vorgehen steht also die Zahl 0000f30c in der auszulesenden Datei wie folgt: 0c f3 00 00. Ich gehe also wie folgt an das Auslesen: $fd=fopen($savefile,"r"); fseek($fd,8); $c = fread( $fd, 4 ); fclose($fd); Tja , und nun versagt mein PHP-Latein :-) Egal was ich auch versuche - HEXDEC funzt nicht. Zerlegen und neu ordenen funzt nicht. Ich komme einfach nicht auf den Strahl wie ich es hinbekomme, dass PHP aus den gelesenen 4 Bytes die richtige Dezimalzahl schreibt. *verzweifel* Es würde ja schon genügen wenn dann auch in dem gelesenen String wenigstens "0cf30000" stehen würde - aber nichtmal das tut so sein. Wenn ich ein echo "$c<br>\n" mache gibt der Server wirre Zeichen via Apache(linux) zum Browser wenn überhaupt - meistens steht da nix drin ausser heisse Luft. Bin für jeden Hinweis SEEEEHHHHR dankbar, da rtfm leider in diesem Falle auch nicht weiterhalf. Gruesse -wm On 22 Feb 00, at 12:54, Tobias Ratschiller wrote: > > Er interpretiert das nicht als Hex-Wort sondern als "wirren" String > > und weil "00" drin vorkommt, mag er garnicht. > > Das gleiche ist der Fall, wenn ich das File Byteweise einlese und > > versuche einfach mit "$wort =$byte[1].$byte[2].$byte[3].$byte[4]" > > eine Auswertung hinzubekommen - läuft ebenfalls nicht. > > Kannst Du "wirrer String" definieren? Ich sehe das Problem irgendwie nicht. > Wenn Du eine hexdazimale Zahl einliest (z.B. 3E8), dann wird HexDec() das > korrekt umrechnen. Liest Du vielleicht die Werte tatsächlich als Tupel durch > ein Leerzeichen getrennt ein? In dem Fall musst Du natürlich vor der > Umrechnung das Leerzeichen rausnehmen. > > Mit freundlichen Grüßen, > Tobias Ratschiller > > > -- > ** Durchgehend geöffnet: http://www.php-center.de ** > Die PHP-Liste: mailto:php_(at)_infosoc.uni-koeln.de > http://infosoc.uni-koeln.de/mailman/listinfo/php >
php::bar PHP Wiki - Listenarchive