Einzelnen Beitrag anzeigen

Dipl Phys Ernst Winter

Registriert seit: 14. Apr 2009
Ort: Jena
103 Beiträge
 
Delphi 3 Professional
 
#46

Re: StringReplace und doppelte Zeichen

  Alt 3. Mai 2009, 17:23
"Uropa" antwortet "Opa"

Halte Dich doch an das, was Du bewerkstelligen willst: Du willst Zeichen aus einem String löschen.

Delphi-Quellcode:
function TForm1.KillDoppelteZeichen(s: string): string;
var
  i: integer;
begin
  i:= 1;
  repeat
    if s[i+1]=s[i] then begin // Doppeltes Zeichen
      Delete(s, i+1, 1); continue end // entfernen
    else Inc(i); // sonst weiter
  until i=Length(s)-1;
  Result:= s
end;
Oh, da habe ich doch glatt übersehen, dass Du nur die Doppelten eines bestimmten Buchstaben eliminieren willst. Also:

Delphi-Quellcode:
function TForm1.KillDoppelteZeichen(s: string; ch:Char): string;
var
  i: integer;
begin
  i:= 1;
  repeat
    if (s[i]=ch) and (s[i+1]=s[i]) then begin Delete(s, i+1, 1); continue end
    else Inc(i);
  until i=Length(s)-1;
  Result:= s
end;
Da das alles im Augenblick geht, ist die Geschwindigkeit kein Thema. Oder willst di im String die ganzen Budenbroks übergeben.
Angehängte Dateien
Dateityp: exe killdoppeltezeichen_107.exe (140,1 KB, 5x aufgerufen)
Dateityp: exe killdoppeltezeichen1_692.exe (141,0 KB, 4x aufgerufen)
Autor: DP Ernst Winter
  Mit Zitat antworten Zitat