einzelne bytes in string ersetzen

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.
Rider

einzelne bytes in string ersetzen

Beitragvon Rider » Mittwoch 13. April 2005, 12:34

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
Gast

Beitragvon Gast » Mittwoch 13. April 2005, 12:42

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^^
joe

Beitragvon joe » Mittwoch 13. April 2005, 12:53

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
Gast

Beitragvon Gast » Mittwoch 13. April 2005, 13:23

yeah thx it worx :D
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Mittwoch 13. April 2005, 13:30

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
joe

Beitragvon joe » Mittwoch 13. April 2005, 13:35

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder