enlever un \ dans un nom de docier
enlever un \ dans un nom de docier
Bonjour,
Je voudrais enlever le dernier \ d'un répertoir obtenu avec PathRequester()
Je voudrais que par exemple, C:\Programmes\ devienne C:\Programmes. Comment puis-je faire?
J'ai chercher avec du RemoveString() et plain d'autres choses dans l'aide pour les chaînes mais je n'ai rien trouvé qui pouvait m'aider.
Quelqu'un a-t-il une astuce pour me dire comment faire?
Merci d'avance
Je voudrais enlever le dernier \ d'un répertoir obtenu avec PathRequester()
Je voudrais que par exemple, C:\Programmes\ devienne C:\Programmes. Comment puis-je faire?
J'ai chercher avec du RemoveString() et plain d'autres choses dans l'aide pour les chaînes mais je n'ai rien trouvé qui pouvait m'aider.
Quelqu'un a-t-il une astuce pour me dire comment faire?
Merci d'avance
-
- Messages : 1092
- Inscription : mer. 28/janv./2004 16:22
- Localisation : 76
- Contact :
Code : Tout sélectionner
fichier.s="C:\Programmes\"
lenfichier = Len(fichier)
If Right(fichier, 1) = "\"
fichier=Left(fichier, lenfichier-1)
EndIf
Heis Spiter, webmaster du site http://www.heisspiter.net
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL
Développeur principal et administrateur du projet Bird Chat
Parti courir au bonheur du dév. public et GPL

Code : Tout sélectionner
fichier$="salutcommentçava .doc"
longfichier = Len(fichier$)
If longfichier>8
fichier$=Left(fichier$,6)+"~1.doc"
EndIf
Debug fichier$

C'est qq chose comme ça :
Code : Tout sélectionner
FileName.s = "C:\RECUP\PureBasic\Win32API\WIN32.HLP"
ShortName.s = Space(67)
GetShortPathName_(@FileName, @ShortName, 67)
Debug ShortName
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.
Cela ne donne pas le répertoir en nom court, mais une suite d'espaces.fweil a écrit :C'est qq chose comme ça :
Code : Tout sélectionner
FileName.s = "C:\RECUP\PureBasic\Win32API\WIN32.HLP" ShortName.s = Space(67) GetShortPathName_(@FileName, @ShortName, 67) Debug ShortName
j'ai essayer de dire que le getshortpathname_() soit mis dans une variable string, mais il me l'a refusé. Cette fonction renvoi un nombre. ça ne me paraît pas logique.
Enfin bon... si quelqu'un a une idée... ça m'aiderais je ne trouve pas

Code : Tout sélectionner
fichier$="salut comment ça va .doc"
longfichier = Len(fichier$)
If longfichier>8
For t=1 To longfichier
buf$=Mid(fichier$,t,1)
If buf$=" ":buf$="":EndIf ; ceci vire les espaces
fichier$=fichier$+buf$
Next t
Debug fichier$ ; la preuve
fichier$=Left(fichier$,6)+"~1.doc"; veiller a ce qu'il n'y ai qu'un seul fichier ayant ce nom !!
; saut ver une procedure de verif !!
EndIf
Debug fichier$

Il semble que, pour utiliser cette fonction, le répertoire doit se trouver effectivement sur le disque. C'est du moins ce qui se passe chez moi, sous XP.gansta93 a écrit :Cela ne donne pas le répertoir en nom court, mais une suite d'espaces.fweil a écrit :C'est qq chose comme ça :
Code : Tout sélectionner
FileName.s = "C:\RECUP\PureBasic\Win32API\WIN32.HLP" ShortName.s = Space(67) GetShortPathName_(@FileName, @ShortName, 67) Debug ShortName
j'ai essayer de dire que le getshortpathname_() soit mis dans une variable string, mais il me l'a refusé. Cette fonction renvoi un nombre. ça ne me paraît pas logique.
Enfin bon... si quelqu'un a une idée... ça m'aiderais je ne trouve pas
La fonction ne retourne pas le repertoire, mais le nombre de caractères copiés dans le buffer. Le repertoire est retourné dans le buffer, (ShortName).
Essaye avec ce code, après avoir créé les dossiers sur le disque C, et ça te retournera les noms courts.
Code : Tout sélectionner
Fichier.s = "C:\Mon Premier Dossier\Mon Deuxieme Dossier\Mon Troisieme Dossier\Le Fichier qui est dans le troisieme dossier.txt" ; Créer d'abord ce repertoire
Buffer.s = Space(#MAX_PATH)
GetShortPathName_(Fichier,@Buffer,#MAX_PATH)
Debug Buffer
Chris

La fonction GetShortPathName_() ne fonctionne qu'avec un chemin existant effectivement.
Mon avatar reproduit l'image de 4x1.8m présentée au 'Salon international du meuble de Paris' en janvier 2004, dans l'exposition 'Shades' réunisant 22 créateurs autour de Matt Sindall. L'original est un stratifié en 150 dpi.