MSDOSTOWINDOWSFILENAME POUR CONVERTIR LES NOMS MS-DOS DE FICHIER

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 - 5 nov. 2004 à 22:31
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 12 nov. 2004 à 19:16
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/27371-msdostowindowsfilename-pour-convertir-les-noms-ms-dos-de-fichier

cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
12 nov. 2004 à 19:16
Unité Windows... Bien vu :)
cs_clandestino Messages postés 16 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 11 novembre 2004
11 nov. 2004 à 12:27
Sous windows :
getfullpathname et getshortpathname sont les deux apis à utiliser...

Clandestino
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
10 nov. 2004 à 17:21
Je limite toujours les fonctions SH~ dans mes projets. Je préfère les fonctions basiques de Delphi en ASM. Au moins, on sait ce qu'on fait.

Ceci dit, on ne fait pas tout, et on a alors besoin des astuces de MAURICIO. Et c'est plus court... certes ! Merci encore de sa participation :)
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
9 nov. 2004 à 11:20
De rien, toujours à disposition!
Au fait, il semble qu' il ne renvoit que le nom du fichier et pas avec toute l' arborescence:
je vais y jeter un oeil tout à l' heure et je le remettrai comme source!!!
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
8 nov. 2004 à 18:53
super ton code mauricio, je le garde :D tres court et tres utile.
merci
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
8 nov. 2004 à 11:42
Voici 2 fonctions qui vous font la conversion dans les 2 sens (pratique non?).
Il vous faudra mettre ShellAPI dans les uses unit ...


function FICHEIRO_NOME_CURTO(Const NomeComprido : String) : String;
var aTmp: array[0..255] of char;
begin
if GetShortPathName(PChar(NomeComprido),aTmp,Sizeof(aTmp)-1)=0
then Result:= NomeComprido
else Result:=StrPas(aTmp);
end;

function FICHEIRO_NOME_COMPRIDO(Const NomeCurto : String) : String;
var aInfo: TSHFileInfo;
begin
if SHGetFileInfo(PChar(NomeCurto),0,aInfo,Sizeof(aInfo),SHGFI_DISPLAYNAME)<>0
then Result:= String(aInfo.szDisplayName)
else Result:= NomeCurto;
end;

Les fonctions sont de moi mais la source originale non ...
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
6 nov. 2004 à 20:33
Je n'utilise pas Kylix. Mais sinon voilà... ok!
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
6 nov. 2004 à 19:38
OK, le motif est valable.
Seulement, ça peut poser des problèmes de portabilité vers Kylix si l'on remplace des constantes symboliques par leur valeurs. Ou alors, on devrait utiliser les directives de compilation :
{$IFDEF WIN32}$10{$ENDIF}{$IFDEF KYLIX}FILE_ATTRIBUTE_DIRECTORY{$ENDIF}.
Comme ça, tout le monde est content. ;o)
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
6 nov. 2004 à 19:27
Je l'avais enlevé puisque ça vient de FileCtrls.pas
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
5 nov. 2004 à 23:50
Pas mal, pas mal...
Pour ceux qui se demandent à quoi correspond la "valeur magique" $10, eh bien il s'agit de FILE_ATTRIBUTE_DIRECTORY. Ca rend le code plus facilement compréhensible.
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
5 nov. 2004 à 22:31
Super ton MicrosoftDiskOperatingSystemToMicrosoftWindowsNomDeFichier !
Rejoignez-nous