Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.033 Beiträge
 
Delphi 12 Athens
 
#16

Re: Leerzeichen aus string löschen

  Alt 13. Mär 2006, 11:55
Zitat von SirThornberry:
trim würde ich aus performancegründen vorziehen.
Würde ich auch mal sagen, wobei hier wohl TrimLeft viel besser wäre, da nur die Linken Leerzeichen gelöscht werden



Zitat:
Code:
[color=#000080][b]repeat[/b][/color]
  delete(a,[color=#ff0000][b]0[/b][/color],1);
[color=#000080][b]until[/b][/color] a[1]<>' ';
Du weißt aber, das das erste Zeichen im String auf Position 1 ist?

Außerdem wird das erste Zeichen immer gelöscht, selbst wenn es kein Leerzeichen ist

also erst Prüfen was für ein Zeichen und dann löschen
Delphi-Quellcode:
While a[1] = ' do
  delete(a,1,1);
Da ja explizit auf das Erste Zeichen zugegriffen wird, sollte auch noch eine Abfrage drin sein, welche nachsieht, ob überhaupt ein Zeichen im string ist...
Delphi-Quellcode:
while (a <> '') and (a[1] = ' ') do
  delete(a,1,1);
Wärend TrimLeft das in etwa so macht, also erstmal nachsehn wieviel Leerzeichen drin sind und erst dann diese löschen, somit wird nur einmal gelöscht, also der zeitaufwendigere Prozess einer Stringmanipulation so wenig wie möglich ausgeführt.
Delphi-Quellcode:
if a <> 'then begin
  i := 1
  while a[i] = ' do
    inc(i);
  delete(a, 1, i - 1);
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat