In String eingeschlossene Escape-Sequenz wird ignoriert

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.
Antworten
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Mittwoch 21. Mai 2008, 22:18

Hallo,
ich lese den Namen für ein Menü-Item aus einer Textdatei.

Code: Alles auswählen

100%\t7
Die darin enthaltene Escape-Sequenz '\t' wird aber nicht als solche interpretiert, so dass im Menü nacher

Code: Alles auswählen

100%\t7
statt

Code: Alles auswählen

100%     7 
steht.

Wie kann ich es anstellen, dass die Escape-Sequenz auch als solche interpretiert wird?

Es grüßt,
Seven
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

Mittwoch 21. Mai 2008, 22:25

Entweder ``menu_string.replace('\\t', '\t')`` oder ``menu_string.decode('string-escape')`` oder in der Menü-Datei schon das Tabulator-Zeichen benutzen.
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 22. Mai 2008, 07:54

Trundle hat geschrieben:Entweder ``menu_string.replace('\\t', '\t')`` oder ``menu_string.decode('string-escape')`` oder in der Menü-Datei schon das Tabulator-Zeichen benutzen.
Zweite Variante führte bei mir zum gewünschten Ergebnis.

Thanx!
Seven
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 22. Mai 2008, 09:32

Hi,
doch noch ein Problem.
Es funktioniert nicht mit Unicode (decode(unicode-escape)). Für die deutsche Version müssen die Menünamen wegen der Umlaute aber zu Unicode gewandelt werden.

Gruß, Seven
snakeseven
User
Beiträge: 405
Registriert: Freitag 7. Oktober 2005, 14:37
Wohnort: Berlin
Kontaktdaten:

Donnerstag 22. Mai 2008, 18:25

Habs jetzt erstmal für jeden relevanten Menüeintrag so gemacht:

Code: Alles auswählen

self.menuitem = wx.MenuItem (self.mainmenu, ID, unicode(itemnames[index].decode('string-escape'), 'utf-8'))
Grüße, Seven
Antworten