Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Alle nicht numerischen Zeichen aus String entfernen

  Alt 11. Sep 2007, 14:54
@matze: Die Variante würde ich eher nicht nehmen da sich die Länge vom String ständig ändert was ein umerhkopieen des Speichers zu Folge hat. Bei einigen Memorymanagern (zum Beispiel dem von Delphi7) wird dadurch der Speicher arg fragmentiert und irgendwann kommt die Meldung das kein Speicher mehr zur Verfügung steht weil nicht genügend zusammenhängender Speicher da ist.

Folgende Variante hätte ich noch:
Delphi-Quellcode:
function RemoveNonNumeric(AStr: String): String;
var
  lCount,
  lPos : Integer;
begin
  lPos := 1;
  for lCount := 1 to Length(AStr) do
  begin
    if (AStr[lCount] in ['0'..'9', '.', ',']) then
    begin
      AStr[lPos] := AStr[lCount];
      inc(lPos);
    end;
  end;
  result := copy(AStr, 1, lPos - 1);
end;
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat