Hallo Achim,
Hallo alzaimar,
vielen Dank für die Erklärungen. Leuchtet mir ein. Für mich ist dieser Code als Verbesserung zu sehen, da ich aus Erfahrung sagen kann, das die Geschwindkeit eines Programmes sehr häufig ein KO - Kriterium für mögliche Kunden ist. Somit sind optimierte Routinen für mich Gold wert. Also besten dank für den Code, er wird Verwendung finden
[Edit]: Ich möchte euch dann auch meinen erweiterten Vorschlag nicht vorenthalten
. So ist die Funktion recht allgmein:
Delphi-Quellcode:
type
TCharSet = set of Char;
//------------------------------------------------------------------------------
// RemoveChars
// Wenn KeepCharSet = False, werden die in CharSet übergebenen Zeichen aus
// dem String s entfernt, ansonsten werden alle anderen Zeichen entfernt
//------------------------------------------------------------------------------
function RemoveChars(s: String; CharSet: TCharSet;
KeepCharSet: Boolean): String;
var
i, iLength: Integer;
bAddChar: Boolean;
begin
iLength := 0;
for i := 1 to Length(s) do
begin
if (((KeepCharSet) and (s[i] in CharSet))
or ((KeepCharSet = False) and not (s[i] in CharSet))) then
begin
Inc(iLength);
if iLength <> i then
s[iLength] := s[i];
end;
end;
Result := Copy(s, 1, iLength);
end; // RemoveChars
// Für das hier benötigte Ergebnis die Funktion folgendermassen aufrufen:
Edit1.Text := RemoveChars(Edit1.Text, ['0'..'9'], True);
Grüße