PureBasic

Forums PureBasic
Nous sommes le Jeu 23/Mai/2013 20:21

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 
Auteur Message
 Sujet du message: [Tuto] récupérer le nom du dernier répertoire d'un Dossier
MessagePosté: Dim 29/Aoû/2010 16:31 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5223
Il existe surement de nombreuses façons de récupérer le nom du dernier répertoire d'un dossier, voici la mienne.
Utilisation des commandes ReverseString(), FindString(), mid()
Assez longue car diverses vérifications sont faites.
On peut aussi ajouter au choix le Slash à la fin du nom

L'astuce consiste à inverser le nom du dossier, ainsi, il suffit de rechercher le second slash pour détecter la position du nom du dernier dossier.

Code:
; Ar-S / 2010 PB 4.50
; Récupération du dernier nom de dossier avec possibilité de lui faire précéder la date.

SOURCE$="c:\purebasic\examples\" ; pour l'exemple

; Procédure de récupération du dernier nom de fichier
; L'option choixSlash permet d'ajouter "\" ou pas à la fin du nom.
; #SLASHON pour l'ajouter
; #SLASHOFF pour ne pas l'ajouter

Procedure.s GetLastDirectory(DossierSource$,choixSlash)
  #SLASHON=1
  #SLASHOFF=0
 
  ;vérification que le slash existe à la fin du chemin sinon on l'ajoute.
  if NOT right(DossierSource$,1)="\"
    DossierSource$+"\"
  EndIf
 
  ; vérification que le chemin existe et qu'on ne soit pas à la racine d'un lecteur
  if DossierSource$<>"" AND len(DossierSource$)>3
    ; On inverse le nom du chemin complet
    DossierSource$=ReverseString(DossierSource$) ; celui si prend donc le nom : \selpmaxe\cisaberup\:c
    PosSlash=FindString(DossierSource$,"\",3)

    ;Gestion de l'ajout du Slash (/) ou pas
    select choixSlash
      case #SLASHON
        ; Extraction du nom du répertoire
        DossierSource$=ReverseString(mid(DossierSource$,2,PosSlash-2))+"\"
      case #SLASHOFF
        ; Extraction du nom du répertoire
        DossierSource$=ReverseString(mid(DossierSource$,2,PosSlash-2))
    EndSelect
   
  ; si le chemin n'existe pas, on retourne 0 
  else
    DossierSource$="0"
  endif
 
  ProcedureReturn DossierSource$
EndProcedure

Debug "avec slash : " + GetLastDirectory(SOURCE$,#SLASHON)
Debug "sans slash : " + GetLastDirectory(SOURCE$,#SLASHOFF)


Voilou. Image

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Dernière édition par Ar-S le Dim 29/Aoû/2010 19:43, édité 1 fois.

Haut
 Profil  
 
 Sujet du message: Re: [Tuto] récupérer le nom du dernier répertoire d'un Dossi
MessagePosté: Dim 29/Aoû/2010 19:19 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12954
t'es en forme !! :D

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: [Tuto] récupérer le nom du dernier répertoire d'un Dossi
MessagePosté: Lun 06/Sep/2010 19:00 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 25/Aoû/2005 22:59
Messages: 383
Et comme ca (plus court):

Code:
Procedure.s GetLastDir (DossierSource$)
  If Right (DossierSource$, 1) = "\"
    Flag = 0
  Else
    Flag = 1
  EndIf
 
  dir$ = StringField (DossierSource$, CountString (DossierSource$, "\") + Flag, "\")
 
  ProcedureReturn dir$
EndProcedure

_________________
Quelques manoucheries : I can't give you anything but love


Haut
 Profil  
 
 Sujet du message: Re: [Tuto] récupérer le nom du dernier répertoire d'un Dossi
MessagePosté: Lun 06/Sep/2010 20:36 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5223
En effet, c'est plus court.
Par contre en cas d'erreur, pas de retour 0
si par exemple ton chemin est "c:\", ta proce va retourner "c:"

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: [Tuto] récupérer le nom du dernier répertoire d'un Dossi
MessagePosté: Mar 07/Sep/2010 13:53 
Hors ligne
Avatar de l’utilisateur

Inscription: Jeu 25/Aoû/2005 22:59
Messages: 383
oui, mais bon je considère c: comme un répertoire...

_________________
Quelques manoucheries : I can't give you anything but love


Haut
 Profil  
 
 Sujet du message: Re: [Tuto] récupérer le nom du dernier répertoire d'un Dossi
MessagePosté: Ven 17/Sep/2010 10:10 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5223
bombseb a écrit:
oui, mais bon je considère c: comme un répertoire...


Toi oui mais un programme (et quelques user lambda) sont très con :mrgreen:
Mais là je j'avoue je chipote ;)

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 6 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 3 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye