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;