binäre Dateien öffnen [erledigt]
Übersicht

![]() |
ThunderBetreff: binäre Dateien öffnen [erledigt] |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe ja schon öfter versucht binäre Dateien mit meinem Blitzbasic zu öffnen. Zuerst dachte ich es ist ganz einfach, ich muss doch nur Byte für Byte aus einer Datei auslesen und das Byte ins Hexadezimalsystem umwandeln. Ich weiß zwar nicht ob es richtig ist, aber es dauert mir viel zu lange. Weiß einer von euch wie soetwas schneller oder besser geht? | ||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
- Zuletzt bearbeitet von Thunder am Mi, März 18, 2009 17:04, insgesamt einmal bearbeitet
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da gibt es noch ReadBytes![]() Aber ich verstehe nicht, wie die üblichen Lesebefehle ''langsam'' sein sollen. Was machst du denn für Sachen? Lädst du da 10MB in den Speicher, oder was? Zum auslesen der Bytes muß im übrigen nichts in Hexadezimalsystem umgewandelt werden. Die Bytes sind Bytes und können auch als solche an Ganzzahlen (Integer%) oder Fliesskomma (Floats#) übergeben werden. Etwas (wirklich geringfügig) schneller als Bytes in Integer zu übertragen ist allerdings das übertragen von integer Zahlen. Auch wenn mehr Daten bearbeitet werden müssen. Ansonsten gib uns Code, dann können wir eventuell auch den Fehler finden, anstelle ewig rum zu spekulieren. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Thunder |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Aber ich verstehe nicht, wie die üblichen Lesebefehle ''langsam'' sein sollen. Was machst du denn für Sachen? Lädst du da 10MB in den Speicher, oder was?
Naja, eigentlich nur 1,29 MB... Zitat: Zum auslesen der Bytes muß im übrigen nichts in Hexadezimalsystem umgewandelt werden
Ich meinte zum ausgeben, damit sie Hexadezimal ausgegeben werden. Aber mit Readbytes funktioniert es jetzt schon |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
anders als mittels Hex![]() |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Man muss die bytes in integer umwandeln und den Integer in Hex... | ||
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
zahl=hex(readbyte(datei))
was is daran nun falsch? |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zeig mal deinen Code... | ||
between angels and insects |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
da_poller, was soll denn deine Zeile da bewirken? Bevor man das nicht weiß, kann man auch nicht sagen was daran falsch ist. Generell haben eventuell einige hier ein falsches Bild davon, wie ein Computer arbeitet.
Der Computer rechnet nicht im dezimalem Zahlensystem, aber auch nicht hexadezimalem Zahlensystem. Der Rechner rechnet einzig und allein mit dem Biärsystem. Alles was man als Programmierer so eingibt X=X+100 wird intern vom Precompiler in eine Binärzahl umgewandelt. Das wäre dann +00000000000000000000000001100100. Erst mit dieser Zahl kann der Rechner dann tatsächlich weiter arbeiten. Das hexadezimale Zahlensystem wurde dafür entwikelt um den Menschen eine bessere Basis zu geben mit dem Computer zu komunizieren. Da das hexadezimale Zahlensystem dem dezimalen Zahlensystem recht ähnlich ist (ähnliche Ziffernzahl) und somit vom Menschen besser erfasst werden kann. Gleichzeitig entspricht eine Hex-Ziffer 4 Bin-Ziffern. Man kann also parallel arbeiten, was mit dem Dec-System auf Bin-System nicht geht. Im übrigen liefert Hex ![]() |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Könnte man Theoretisch eine Binäre Datei einlesen (in eine Bank) dann die einzelnen Bytes in Hex-Umwandeln (mit der Hex(int) Funktion) und anschliessend diese Hex-Werte in eine Datei schreiben? Das wäre dann ja eigentlich ein Hex-"Editor" oder? Aber wie mache ich die ganze Sache dann rückwarts? | ||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
@the FR3AK:
Lies dir bitte mal hectics Beitrag über deinem durch. Du scheinst das nicht verstanden zu haben. Hex-Editoren heißen Hex-Editoren weil sie den Inhalt von Dateien als Hexzahlen darstellen. Das Stichwort "Darstellung" ist gut, denn nichts anderes sind Zahlensystem (binär, hex, dezimal, usw...) Es sind einfach nur verschiedene Arten eine Zahl darzustellen. In der Datei stehen sie letztendlich eh immer als Einsen und Nullen. Warum heißt es dann Binärdaten? Man unterscheidet grundsätzlich zwischen Binär- und Textdateien. Ich kann zum Beispiel ein Level auf zwei Arten speichern. Als eine Art XML, die ungefähr so aussieht:Code: [AUSKLAPPEN] <?xml version="1.0" ?>
<map> <title>Testmap - 1</title> <object> <name>obj1</name> <vert> <up>110.000000</up> <down>0.000000000</down> <pos>0.000000000</pos> </vert> <vert>... Oder in Binärdaten, da sieht dann zB so aus: Code: [AUSKLAPPEN] $~¿ôÐ11Mî¸hâ¹è;OogµY¢q€ ¿Ù¤>Y÷8†Ë8¨òéú>XÀ»,›ù¢ÆÑKÇ¡´‹¸W7"™Óø–8öšœÍr-r1ù±”öRŠQ¸x“z?ÙGô+SÕ¿ì’ZÞ?tlhKó‚åe£ƒº/×ñkµ~rõ}ÜHA¸™Pu•q>k®%'mÞHÇÖyYGëG:$ùÙ˜
Man erkennt sofort: Textdateien sind in menschenlesbarer Form, was eine schnellere Manipulation erlaubt. Sie brauchen aber auch viel mehr Platz, denn in binärform kann man Daten viel kompakter abspeichern. Speichere ich die Zahl 222 in einer Textdatei ab, brauche ich dafür 3 Zeichen und somit 3 Byte. Dasselbe binär braucht aber nur 1 Byte. ReadLine³$BÂÇÀ´@Æîâ·¢!PŸŸ£»ÀÿF*k<ÑLtHJ´þÀã2¿Iýæùy1Ðñ’„;mµø%dÓBÉ$o¨ÆÌÈu¯Ú‹Ëg~YÝs=<–èy"åÑ_[©¯=>TþL•QÈùãäãý:^1^¼x†*{KŒž/îµØ³ ![]() ![]() ![]() |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group