(Gast)
n/a Beiträge
|
AW: Rechnung mit Sonderzeichen in Rechnung ohne Sonderzeichen konvertieren
2. Feb 2016, 15:57
Dann schau Dir doch mal Deine Löschroutine an und analysiere, was sie macht:
Delphi-Quellcode:
function TForm5.Löschen(text:string;alt:string): string;
var
b,a :integer;
begin
b:=Pos(alt,text); // Wo ist die zu löschende Zeichenfolge?
a:=length(alt); // und wie lang ist sie?
while b>0 do begin // Ist sie überhaupt vorhanden?
text:=copy(text,b,a); // Text ist alles, ab der Fundstelle, alles was davor ist, geht "verloren".
Delete(text,b,a); // Im Rest löschen wir jetzt ab der Position im Ursprung soviel Zeichen, wie die Zeichenfolge lang ist. Allerdings hat sich die Postition durch das Entfernen des Anfangs verschoben. Hier löschen wird also irgendwo irgendwas.
b:=Pos(alt,text); // Position der Zeichenfolge im Rest suchen.
end;
result := Text; // Wenn denn was übrigbleiben sollte, geben wir das zurück.
end;
Um Fehler in 'ner eigenen Routine zu vermeiden, würd' ich mich auf vorhandene Routinen von Delphi verlassen:
Delphi-Quellcode:
sl.Text := AnsiReplaceText(sl.Text,'\A+','');
sl.Text := AnsiReplaceText(sl.Text,'\A-','');
sl.Text := AnsiReplaceText(sl.Text,'\S+','');
sl.Text := AnsiReplaceText(sl.Text,'\S-','');
sl.Text := AnsiReplaceText(sl.Text,'\U+','');
sl.Text := AnsiReplaceText(sl.Text,'\U-','');
|
|
Zitat
|