Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Ersetzen von Dezimalwerten

  Alt 5. Nov 2003, 21:22
Moin Jan,

ich denke mal, Du könntest "einfach" Zeichen für Zeichen durchgehen.
Ist es ein Zeichen <> &, wird es direkt in den Zielbuffer übernommen, ansonsten suchst Du Dir ab dieser Stelle alle Zeichen bis zum nächsten ; raus.
Als Ergebnis für diesen Teilstring müsste jetzt (jeweils ohne Blank nach dem & versteht sich) & amp; / & lt; / & gt; / & quot; / & nbsp; oder & #nnn; rauskommen, da ja auch die Zeichen & / < / > / " und non breaking Space als Sonderzeichen kodiert sind (mehr als diese fünf fallen mir jetzt nicht ein). Den numerischen Wert könntest Du dabei einfach als chr(nnn) in den Zielbuffer schreiben, und die anderen durch eine Abfrage welcher String es ist, und dann das jeweilige Zeichen. Anschliessend steht der Quellindex hinter dem ; und das übersetzte Zeichen im Zielbuffer.
Geht allemal schneller als ein wiederholtes StringReplace, was auch zu Übersetzungsfehlern führen kann, weil dann umgewandelte Zeichen wiederrum Umwandelbare Zeichenkombinationen bilden können, was je eindeutig falsch wäre.
Du müsstest jetzt nur noch Fehler abfangen, denn es könnten ja auch Fehler in der Datei enthalten sein, z.B. ein einzelnes & was eigentlich als & amp; hätte enthalten sein müssen.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat