Seite 2 von 2

Verfasst: Donnerstag 25. Februar 2010, 15:36
von Leonidas
Mr.Wolna hat geschrieben:Beispiele?
Beispiele für was?

Verfasst: Donnerstag 25. Februar 2010, 15:36
von Dauerbaustelle
Oh man. Siehe oben. `seek` wurde jetzt glaube ich schon ein paar mal erklärt. Und `write` kannst du dir aus den Beispielen ableiten. Versuchs doch einfach mal, durch Ausprobieren und Verstehen lernt man am besten.

Verfasst: Donnerstag 25. Februar 2010, 15:53
von Mr.Wolna
Ich versuchs meine Freude, ich versuchs.

Aber irgendwie ersetzt er nicht richtig. Der gibt zusätzlich Zeichen aus bzw. falsche. Irgendwas stimmt da nicht.

Code: Alles auswählen

#!/usr/bin/python


f = open('save.dat', 'r+b')
f.seek(0x1d)
f.write("AFFE")
player_name = f.read(0x20)
print player_name
MFG

Verfasst: Donnerstag 25. Februar 2010, 17:01
von Leonidas
Mr.Wolna hat geschrieben:Aber irgendwie ersetzt er nicht richtig. Der gibt zusätzlich Zeichen aus bzw. falsche. Irgendwas stimmt da nicht.
Na klar tut er das, weil du nur die ersten 4 Byte überschreibst. Die restlichen 32-4 = 28 Byte sind noch unverändert und tragen den alten Inhalt. Daher kommen die zusätzlichen Zeichen.

Verfasst: Donnerstag 25. Februar 2010, 17:23
von Mr.Wolna
ganz ehrlich ich verzweifle grad, kann mir jemand ein Beispiel schreiben?


wie ich auf verschiedene werte zugreifen und diese überschreiben kann.

Verfasst: Donnerstag 25. Februar 2010, 17:44
von /me
Mr.Wolna hat geschrieben:ganz ehrlich ich verzweifle grad, kann mir jemand ein Beispiel schreiben?
Mir zeigt das im Endeffekt nur, dass du dich mit der Aufgabenstellung überforderst. Geh es langsamer an und lerne Grundlagen. Experimentiere selber. Versuche (falsche) Ergebnisse zu interpretieren.

Wenn du fertige Lösungen bekommst hilft dir das nicht, da du sie nicht wirklich verstehst und dann auch noch sofort auf die nächste Idee springst mit der du dann wieder Schwierigkeiten hast.

Lerne lernen!

Verfasst: Donnerstag 25. Februar 2010, 17:48
von Mr.Wolna
jo, ich weiß nur nicht wo ich anfangen soll. ich will das ergebniss des programms gleich sehen bzw. das es zu was nutze sit, und nicht irgenwelche calculatoren programmieren.


wie gesagt kp, ich würde gerne ypthon lernen. und so das grobe was eine sprache ausmacht weiß ich ,aber kein plan wo ich jetz anfangen soll.

mfg

Verfasst: Donnerstag 25. Februar 2010, 19:46
von Mr.Wolna
Leonidas hat geschrieben:
Mr.Wolna hat geschrieben:Aber irgendwie ersetzt er nicht richtig. Der gibt zusätzlich Zeichen aus bzw. falsche. Irgendwas stimmt da nicht.
Na klar tut er das, weil du nur die ersten 4 Byte überschreibst. Die restlichen 32-4 = 28 Byte sind noch unverändert und tragen den alten Inhalt. Daher kommen die zusätzlichen Zeichen.
ok, nach einem Spaziergang ist mein Kopf wieder klar und ich sehe was das Problem ist. Aber wie kann ich das umsetzten, wenn ich weniger als die vorgegebene bytegröße beschreibe, das die andeeren auf null gesetzt bzw. gelsöcht werden?

MFG

Verfasst: Donnerstag 25. Februar 2010, 20:08
von Leonidas
Mr.Wolna hat geschrieben:ok, nach einem Spaziergang ist mein Kopf wieder klar und ich sehe was das Problem ist. Aber wie kann ich das umsetzten, wenn ich weniger als die vorgegebene bytegröße beschreibe, das die andeeren auf null gesetzt bzw. gelsöcht werden?
Na einfach nicht weniger als 32 Bit schreiben, etwa so:

Code: Alles auswählen

player_name = "Larxene" + 25 * '\0'
Damit hast du den String auf 32 Byte aufgefüllt - nach dem Spielernamen stehen lauter Nullbytes. Achja, der Spielername darf sowieso nicht länger als 31 Zeichen lang sein, da das letzte, 32. Zeichen auch ein Nullbyte sein muss. Steht auch so in der von dir verlinkten Dokumentation.

Verfasst: Donnerstag 25. Februar 2010, 20:33
von Mr.Wolna
Jo ist mir bewusst. Danke für die obere Erklärung. Die sit aber nicht flexibel, ich würde gerne per raw_input den namen eingeben können.

aber ich seh schon, mir fehl es eben an soclhen Elementaren Dinge. Das ich das automatisieren bzw, dynamishc machen könnte, aber ich versuchs^^

MFG

edit: ich brauch halt den Restwert, von 31 und der Anzahl des raw Inputs in eienr varaible oder?

Verfasst: Donnerstag 25. Februar 2010, 22:23
von Leonidas
Mr.Wolna hat geschrieben:Jo ist mir bewusst. Danke für die obere Erklärung. Die sit aber nicht flexibel, ich würde gerne per raw_input den namen eingeben können.
Also komm, das war ein Beispiel. Das etwas Abstraktionsdenken wirst du wohl selbst hinebkommen

*sigh*

Ich seh schon, das wird nix. Aber du hast mich schon ziemlich gefrustet, das ist jetzt da letzte was ich zu dem Thema mache, da du wirklich nichtmal den Ansatz eines Versuches zeigst:

Code: Alles auswählen

player_name = raw_input("Benutzernamen eingeben: ")
if len(player_name) > 31:
    raise TypeError("Benutzername darf maximal 31 Zeichen lang sein")
binary = player_name + (32 - len(player_name)) * '\0'
f.seek(0x1d)
f.write(binary)
War das jetzt wirklich so schwer?

Verfasst: Donnerstag 25. Februar 2010, 23:14
von Mr.Wolna
Kommt drauf an für wen. Aber du hast Recht SO wird das nichts, ich meine ich kann nicht für 2 sek Code einen Tag verbrauchen. Ich muss noch mehr die Grundlagen lernen.


Ich danke für deine Geduld. Und Frust ist wohl das richtige Wort für dieses ganzes "Spektakel".

MFG

Verfasst: Donnerstag 25. Februar 2010, 23:33
von /me
Mr.Wolna hat geschrieben:Kommt drauf an für wen. Aber du hast Recht SO wird das nichts, ich meine ich kann nicht für 2 sek Code einen Tag verbrauchen. Ich muss noch mehr die Grundlagen lernen.
Als ich anfing Python zu lernen war meine Absicht, Python im Web einzusetzen. Das habe ich auch getan, allerdings begannen meine ersten Experimente in dem Bereich erst nach 3 Monaten, nachdem ich die Grundlagen einigermaßen verstanden hatte. Von 0 auf 100 in einer Woche kann einfach nicht funktionieren.

Verfasst: Freitag 26. Februar 2010, 19:26
von Mr.Wolna
Es ist nicht so, das ich davor nie was von einer Syntax gehört habe. Das Problem ist, das ich am besten praktisch lerne, und ich einfach nicht weiß wo und wie ich am besten anfangen kann.


MFG

Verfasst: Freitag 26. Februar 2010, 22:15
von derdon

Verfasst: Samstag 27. Februar 2010, 00:20
von Mr.Wolna
derdon hat geschrieben:Kleine Programmieraufgaben
danke schön. gibts vielleicht auch was in deutsch?

MFG