@bigg: Guck ich mir an, danke
@Dax: Danke für die Info.
@marabu: auf irgendeinzeichen davor
Ich denke ja das wir nichtmehr im string sind wenn wir unter dem ersten zeichen sind oder?
So sah meine Funktion aus, die alle Zeichen links gelöscht hat:
Delphi-Quellcode:
function StripCharsLeft(const S: string; CharSet: TCharSet): string;
var
PResIdx: PChar;
PSIdx: PChar;
Idx: Integer;
SLen: Integer;
begin
SetLength(Result, Length(S));
if S <> '' then
begin
PResIdx := @Result[1];
PSIdx := @S[1];
Idx := 0;
SLen := Length(S);
while (PSIdx^ <> #0) and (PSIdx^ in CharSet) do
begin
Inc(PSIdx);
Inc(Idx);
end;
if PSIdx^ <> #0 then
begin
CopyMemory(@Result[1], PSIdx, SLen-Idx);
SetLength(Result, SLen-Idx);
end;
end;
end;
Die wollte ich nun nochmal (selbst) so schreiben, das rechts gelöscht wird statt links, aber da wir ja am Anfang des Strings kein #0 Zeichen haben, bin ich daran bis jetzt gescheitert :\
Zitat:
Dein Code darf beim Arbeiten mit Zeigern weder unbeabsichtigt (Fehlerfall), noch bewusst (Erfolg durch Nebenwirkung) auf "solche" Speicherbereiche zugreifen.
Jo, ich dachte nur man darfs, wegen:
Zitat von
marabu:
Klar doch
Oder war das Ironie?
Danke auch Dir