{ renvoie tout ce se trouve avant le dernier "/" y compris} function ExtractUrlFilePath(const aUrl: string): string; var {$ifdef unicode} Ptr : PWord; {$else} Ptr : PByte; {$endif} I, Lng : Integer; begin Result := aUrl; Lng := Length(aUrl); Ptr := @Result[Lng]; for I := Lng downto 1 do begin if Ptr^ = $2F then Break; Dec(Ptr); end; Inc(Ptr); Ptr^ := $0; Result := Pchar(Result); end;
31 mai 2014 à 19:06
Joli bout de code.
Attention à la possibilité que "aUrl" soit une chaîne vide.
Sans dénaturer le code, on peut gérer cette possibilité ainsi :
1 juin 2014 à 15:26
oui tu as entièrement raison ... Merci
mais une petite erreur s'est glissée au début du code modifié du coup le code ne plante plus quand la string est vide mais pleine ... mouahahahahaha ^^
Result := '';
à la place de
Result := aUrl;
voici donc le code final:
et bon Dimanche à tous ;)
@+ Cirec
3 juin 2014 à 11:50
Bizarre... je vois pas où ça coince
(n'aurais-tu pas mal recopié-collé le code ?)
Chez moi (D7) ça marche sans problème, string vide, string pleine, string à moitié plein...
(ou alors c'est moi qui le suis... ;-)
Par contre, je m'aperçois que la première instruction est inutile :
@ +