Seite 1 von 1
einzelne bytes in string ersetzen
Verfasst: Mittwoch 13. April 2005, 12:34
von Rider
hi!
ich hab einen string in hex - sagen wir:
string = "\x30\x31\x32\x33\x34"
jetzt will ich von hinten angefangen jedes byte mit \x55 ersetzen.
so, dass ich nach und nach bekomme:
string2 = "\x30\x31\x32\x33\x55"
string3 = "\x30\x31\x32\x55\x34"
string4 = "\x30\x31\x55\x33\x34"
string5 = "\x30\x55\x32\x33\x34"
string6 = "\x55\x31\x32\x33\x34"
wäre über bissl hilfe sehr dankbar,
grüße,
rider
Verfasst: Mittwoch 13. April 2005, 12:42
von Gast
ok hab zumindest mal den part hinbekommen die hex bytes zu ersetzen. '...' musste ich statt "..." nehmen.
--------------
s = "\x41\x42\x43\x44\x45"
print " % s" % s
s = s.replace('\x41', '\x42')
print " % s" % s
--------------
gibt mir:
ABCDE
BBCDE
das ja schonmal fein jetz will ich das ganze nur noch byte für byte rückwärts ersetzen. also nicht '\x41' sd. allgemein jedes byte von hinten her^^
Verfasst: Mittwoch 13. April 2005, 12:53
von joe
Hi!
Anonymous hat geschrieben:
ABCDE
BBCDE
das ja schonmal fein jetz will ich das ganze nur noch byte für byte rückwärts ersetzen. also nicht '\x41' sd. allgemein jedes byte von hinten her^^
Vielleicht so.
Code: Alles auswählen
s = "\x41\x42\x43\x44\x45"
for i in range(len(s),0,-1):
sNeu = s[:i-1] + "\x42" + s[i:]
print sNeu
joe
Verfasst: Mittwoch 13. April 2005, 13:23
von Gast
yeah thx it worx

Verfasst: Mittwoch 13. April 2005, 13:30
von mawe
Hi!
Oder
Code: Alles auswählen
s = "\x41\x42\x43\x44\x45"
for i in range(len(s)-1,-1,-1):
sNeu = s.replace(s[i], "\x42")
print sNeu
Gruß, mawe
Verfasst: Mittwoch 13. April 2005, 13:35
von joe
mawe hat geschrieben:
Code: Alles auswählen
s = "\x41\x42\x43\x44\x45"
for i in range(len(s)-1,-1,-1):
sNeu = s.replace(s[i], "\x42")
print sNeu
Das klappt aber nur für diesen ganz speziellen fall. Kommt auch nur ein zeichen im ursprungsstring 2mal vor, gehts schon nicht.
joe