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
einzelne bytes in string ersetzen
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^^
--------------
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^^
Hi!
joe
Vielleicht so.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^^
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
-
- Python-Forum Veteran
- Beiträge: 1209
- Registriert: Montag 29. September 2003, 17:18
- Wohnort: Purkersdorf (bei Wien [Austria])
Hi!
Oder
Gruß, mawe
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
Das klappt aber nur für diesen ganz speziellen fall. Kommt auch nur ein zeichen im ursprungsstring 2mal vor, gehts schon nicht.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
joe