Einzelnen Beitrag anzeigen

Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#21

Re: StringReplace und seine Tücken

  Alt 7. Dez 2005, 11:55
Zitat von GuenterS:
Ich stell mir das so vor:

Du gehst Dein Memo zeichen für Zeichen durch und schreibst das konvertierte in die neue Stringlist, dann ist es ziemlich egal, welche Reihenfolge du verwendest.
Hmmmmm - an die Möglichkeit habe ich noch gar nicht gedacht.

Delphi-Quellcode:
function GetISO8859_1(s: string): string;
var
  i: Integer;
  sNew: string;
begin
  sNew := '';
  for i := 1 to Length(s) do
  begin
    case s[i] of
      ';': sNew := sNew + '& # 5 9 ;';
      '#': sNew := sNew + '& # 3 5 ;';
      '&': sNew := sNew + '& # 3 8 ;';
      'ä': sNew := sNew + '& # 2 2 8 ;';
      // Hier folgen weitere ISO-Codes...
    else
      sNew := sNew + s[i];
    end;
  end;
  Result := sNew;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin
  Memo1.Clear;
  Memo1.Lines.Add('Mustermann GmbH & Co. KG');
  Memo1.Lines.Add('');
  Memo1.Lines.Add('Täler, Wälder; all das # ist Natur & schön.');
  Memo2.Clear;
  for i := 0 to (Memo1.Lines.Count - 1) do
  begin
    Memo2.Lines.Add(GetISO8859_1(Memo1.Lines[i]));
  end;
end;
Ergibt:

Mustermann GmbH & # 3 8 ; Co. KG

T& # 2 2 8 ;ler, W& # 2 2 8 ;lder& # 5 9 ; all das & # 3 5 ; ist Natur & # 3 8 ; schön.



Danke euch allen...

Werde die komplette Function dann hier noch posten, wenn ich alles abgeschrieben habe.

Entdeckt noch jemand einen (logischen) Fehler oben im Code? Kann man an irgend einer Stelle Code einsparen oder verbessern?
Catbytes
  Mit Zitat antworten Zitat