Affichage en abrégé des chemins et fichiers (Function)
mikka78
Messages postés2Date d'inscriptionmercredi 15 décembre 2004StatutMembreDernière intervention 1 mai 2009
-
1 mai 2009 à 07:57
mikka78
Messages postés2Date d'inscriptionmercredi 15 décembre 2004StatutMembreDernière intervention 1 mai 2009
-
1 mai 2009 à 20:58
Bonjour,
J'avais trouvé sur le net une fonction standard de Delphi pour l'affichage en abrégé des chemins et nom de fichiers.
Malheureusement je ne l'ai pas noté. J'ai une application en cours et cette fonction me serait bien utile (Affichage dans listbox).
Exemple
c:\repertoire1\repertoire2\repertoire3\repertoire4\nom_de_fichier.txt
résultat:
c:\......\repertoire4\nom_de_fichier.txt (de mémoire)
Si vous avez une piste, merci par avance.
A voir également:
Affichage en abrégé des chemins et fichiers (Function)
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 1 mai 2009 à 11:11
Tu peux la faire toi-même sans trop de soucis ...
function ShortPath(S: String): String;
Var
Drive: String;
LastDir: String;
P: Integer;
I: Integer;
begin
Drive := ExtractFileDrive(S);
LastDir := ExtractFilePath(S);
LastDir := Copy(LastDir, 1, Length(LastDir) - 1);
P := 0;
for I := Length(LastDir) downto 1 do
if LastDir[I] = '\' then
begin
P := I;
Break;
end;
if P = 0 then Exit;
LastDir := Copy(LastDir, P + 1, Length(LastDir) - P);
Result := Format('%s\.....\%s\%s', [Drive, LastDir, ExtractFileName(S)]);
end;
Ici, on va extraire le lecteur. On aura une chaîne de la forme "C:". Ensuite, on va récupérer le dernier dossier du fichier (comme "Program Files" ou "System32"). Puis, on va coller tout ça ensemble selon le format :
Lecteur + Petits points + Nom du dernier dossier + Nom du fichier.
Et voilà !
Cette procédure n'est evidemment pas optimisée, on met du temps à trouver le nom du dernier dossier je suis sûr qu'il y a moyen d'aller plus vite ...
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 1 mai 2009 à 11:14
Par contre elle ne fonctionne pas avec des fichiers comme "C:\Fichier.exe", sans répertoire entre les deux. Il faudrait l'améliorer un petit peu.
D'ailleurs, ça ne serait pas la fonction suivante que tu cherches ?