Verfasst: Donnerstag 25. Februar 2010, 15:36
Beispiele für was?Mr.Wolna hat geschrieben:Beispiele?
Seit 2002 Diskussionen rund um die Programmiersprache Python
https://www.python-forum.de/
Beispiele für was?Mr.Wolna hat geschrieben:Beispiele?
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
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.Mr.Wolna hat geschrieben:Aber irgendwie ersetzt er nicht richtig. Der gibt zusätzlich Zeichen aus bzw. falsche. Irgendwas stimmt da nicht.
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.Mr.Wolna hat geschrieben:ganz ehrlich ich verzweifle grad, kann mir jemand ein Beispiel schreiben?
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?Leonidas hat geschrieben: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.Mr.Wolna hat geschrieben:Aber irgendwie ersetzt er nicht richtig. Der gibt zusätzlich Zeichen aus bzw. falsche. Irgendwas stimmt da nicht.
Na einfach nicht weniger als 32 Bit schreiben, etwa so: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?
Code: Alles auswählen
player_name = "Larxene" + 25 * '\0'
Also komm, das war ein Beispiel. Das etwas Abstraktionsdenken wirst du wohl selbst hinebkommenMr.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.
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)
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.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.
danke schön. gibts vielleicht auch was in deutsch?derdon hat geschrieben:Kleine Programmieraufgaben