Récupérer le chemin du dossier de la Structure

Joël Prince

- Titre : Récupérer le chemin du dossier de la Structure

- Auteur : Joël Prince

- Parution : 24 octobre 2005

- Licence : Copyright ® 2005 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

Produit : 4D 2004  ·  Plateforme : Mac & Win ♪

La fonction Fichier structure retourne le nom long (c'est-à-dire le chemin d'accès complet au fichier, y compris son nom) du fichier de structure de la base sur laquelle vous travaillez.

Par exemple :

G:\Develop\MaBase\Base.4DB (sous Windows)   ou   HD:Develop:MaBase:Base (sous Macintosh)

Pour récupérer le nom du dossier sans le nom du fichier, vous devez retirer le nom après le dernier séparateur (\ pour Windows, : pour Macintosh).

1. ` Déclarons une variable qui contiendra \ ou :

3. C_ALPHA(1;˚Séparateur)

4. C_ENTIER LONG($PlateForme;$VersionSysteme;$NumMachine)

5. PROPRIETES PLATE FORME($PlateForme;$VersionSysteme;$NumMachine)

7. ` 1=Mac 2=PowerMac 3=Windows

8. Si ($PlateForme=3 )

9. ◊Séparateur:=Caractere(92)  `"\"

10. Sinon

11. ◊Séparateur:=Caractere(58)  `":"

12. Fin de si

14. `Récupérons le chemin et balayons le texte jusqu'au denier séparateur

15. C_TEXTE($Structure;$Chemin)

16. $Structure:=Fichier structure

17. $Pos:=Position(◊Séparateur;$Structure)

19. Tant que ($Pos›0)

20. $Chemin:=$Chemin+Sous chaine($Structure;1;$Pos)

21. $Structure:=Sous chaine($Structure;$Pos+1)

22. $Pos:=Position(◊Séparateur;$Structure)

23. Fin tant que

25. `Ici $Chemin contient le chemin du dossier où se trouve la structure

26. `et $Structure contient le nom seul du fichier de structure

Il serait bien venu d'écrire, tant qu'à faire, une méthode générique (CheminDocument) où vous passez un ou deux paramètres et récupérez soit le chemin soit le nom du document.

1. `$Doc:=CheminDocument(Document{;"*"})

2. `Un paramètre =› nom du document

3. `Deux paramètres =› chemin du dossier

5. C_TEXTE($Document;$Chemin)

6. $Document:=$1

7. $Pos:=Position(◊Séparateur;$Document)

9. Tant que ($Pos›0)

10. $Chemin:=$Chemin+Sous chaine($Document;1;$Pos)

11. $Document:=Sous chaine($Document;$Pos+1)

12. $Pos:=Position(◊Séparateur;$Document)

13. Fin tant que

15. Si (Nombre de parametres=2)

16. $0:=$Chemin

17. Sinon

18. $0:=$Document

19. Fin de si

… et vous écririez la méthode d'appel :

1. MonDossier:=CheminDocument(Fichier structure ;"*")