Run Length

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24

Hallo, wir machen gerade den Run Length in der Schule. Für die, die nicht wissen was der Run Length ist, das ist ein Programm zum kodieren von Texten oder Bitmaps.

Mit den Texten ist das kein Problem nur jetzt kommts beim Bitmap. An einem Zeichen kommt er nie weiter und das wäre in Hexa 0x1A, hier hört er auf die Datei zu kodieren. Das 0x1A steht für substitute, ich kann mir aber überhaupt nicht vorstellen was das macht. Das Problem kommt dan immer, wenn ich es aus der Bitmap auslese und dan in die neue datei schreiben will.

Wäre sehr dankbar wenn jemand mir das sagen könnte.

MfG cz3kit
Haben wir mal wieder was gelernt :P
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Code: Alles auswählen

sebastian@sepp:~$ cd /dev/glaskugel
bash: cd: /dev/glaskugel: No such file or directory
Ohne wenigstens einen Happen Code wird eine Fehleranalyse wirklich sehr schwierig ;-)
Das Leben ist wie ein Tennisball.
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24

Oke^^ dan mach ich mal eben ein Code rein sorry
http://paste.pocoo.org/show/136014/

das Problem ist ja wie gesagt, dass ich in der .bmp datei ein substitute habe, und dieser macht aus char = "" und ich weiß nicht was ich so rehct machen kann, damit dieser den dennoch in die nei Datei schreibt und joa weiter macht
Haben wir mal wieder was gelernt :P
BlackJack

0x1A steht unter CP/M und damit unter DOS und damit unter Windows in *Textdateien* für das Ende des Textes. Die genannten Betriebssysteme hören da einfach auf zu lesen. Man sollte also Dateien mit Binärdaten auch immer im Binärmodus öffnen.
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24

Ahso oke, das macht Sinn. Müsste dann in der 2 Zeile stehen:

Code: Alles auswählen

bitmap = file("kirby.bmp", "rb")
???
Haben wir mal wieder was gelernt :P
Benutzeravatar
snafu
User
Beiträge: 6873
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Normalerweise verwendet man open() statt file(). Und das spätere Abspeichern im Binärmodus nicht vergessen. ;)
cz3kit
User
Beiträge: 74
Registriert: Freitag 9. Januar 2009, 16:24

also heißt das die zwei Zeilen so aussehen würden

Code: Alles auswählen

bitmap = file("kirby.bmp", "rb")
bitmap2 = file("kirby2.txt", "wb")

richtig?
Haben wir mal wieder was gelernt :P
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Nein. Noch "open" statt "file" und richtige Namen.
Das Leben ist wie ein Tennisball.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

snafu hat geschrieben:Normalerweise verwendet man open() statt file().
Das ist IMHO reine Geschmackssache...

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

@jens: Die Doku sagt `open()` ist zu bevorzugen. Es sind mittlerweile auch zwei unterschiedliche Objekte und nicht zwei Namen für ein und dasselbe Objekt.
Antworten