[RESOLU] GetDirectoryPart()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

[RESOLU] GetDirectoryPart()

Message par venom »

Bonjour,

voilà je bloque sur une chose qui pourtant parait simple :

voilà je souhaiterai récuperer le nom d'un répertoire.
ex : C:\Dossier\test\
je souhaiterais récupérer le nom test.

bien évidemment vous allez me dire bin fait cela :

Code : Tout sélectionner

Debug Mid("C:\Dossier\test\", 12, 4)
certes :D mais le problème c'est que le dossier sera jamais le même donc je peut en effet savoir la logeur total mais pas le nombre de lettre du dossier.

donc une fonction comme GetFileyPart() aurais pou être sympa sous purebasic non ?
avez vous des idées si non ? ou un api ?







@++
Dernière modification par venom le jeu. 24/déc./2009 4:21, modifié 1 fois.
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Jacobus
Messages : 1559
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: GetDirectoryPart()

Message par Jacobus »

Code : Tout sélectionner

Structure Characters 
  c.c[0] 
EndStructure 

Procedure.s GetDirectoryPart(FileName.s) 
  Protected Directory.s, i.l 
  Protected *Directory.Characters 
  Directory = GetPathPart(FileName) 
  If Directory 
    i = Len(Directory) - 2 
    *Directory = @Directory  
    While i >= 0 And *Directory\c[i] <> '/' And *Directory\c[i] <> '\' 
      i - 1 
    Wend  
    i + 2 
    Directory = Mid(Directory, i, Len(Directory) - i) 
  EndIf 
  ProcedureReturn Directory 
EndProcedure
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: GetDirectoryPart()

Message par venom »

merci pour ta procédure Jacobus.
si sa peut servir a d'autres aussi. :wink:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: GetDirectoryPart()

Message par Anonyme2 »

Code : Tout sélectionner

Procedure.s GetDirectoryPart_2(FileName.s)
    Protected nb_dir
    
    If Len(FileName)
       If Right(FileName, 1) <> "\"
          ;// ajoute le \ si absent à la fin
          FileName + "\"
       EndIf
       nb_dir = CountString(FileName, "\")

      ProcedureReturn StringField(FileName, nb_dir, "\")
              
    Else
        ;// FileName est vide
        ProcedureReturn ""
    EndIf

EndProcedure
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: GetDirectoryPart()

Message par venom »

Merci Denis,
ton code offre aussi le même rendu que celui de Jacobus avec des lignes en moins il y a de l'optimisation dans l'air :D







@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Répondre