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).
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
` Déclarons une variable qui contiendra \ ou :
C_ALPHA(
1
;
˚Séparateur)
C_ENTIER LONG
(
$PlateForme
;
$VersionSysteme
;
$NumMachine
)
PROPRIETES PLATE FORME(
$PlateForme
;
$VersionSysteme
;
$NumMachine
)
` 1=Mac 2=PowerMac 3=Windows
Si
(
$PlateForme
=
3
)
◊Séparateur:=
Caractere
(
92
)
`"\"
Sinon
◊Séparateur:=
Caractere
(
58
)
`":"
Fin de si
`Récupérons le chemin et balayons le texte jusqu'au denier séparateur
C_TEXTE
(
$Structure
;
$Chemin
)
$Structure
:=
Fichier structure
$Pos
:=
Position
(
◊Séparateur;
$Structure
)
Tant que
(
$Pos
›0
)
$Chemin
:=
$Chemin
+
Sous chaine
(
$Structure
;
1
;
$Pos
)
$Structure
:=
Sous chaine
(
$Structure
;
$Pos
+
1
)
$Pos
:=
Position
(
◊Séparateur;
$Structure
)
Fin tant que
`Ici $Chemin contient le chemin du dossier où se trouve la structure
`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.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
`$Doc:=CheminDocument(Document{;"*"})
`Un paramètre =› nom du document
`Deux paramètres =› chemin du dossier
C_TEXTE
(
$Document
;
$Chemin
)
$Document
:=
$1
$Pos
:=
Position
(
◊Séparateur;
$Document
)
Tant que
(
$Pos
›0
)
$Chemin
:=
$Chemin
+
Sous chaine
(
$Document
;
1
;
$Pos
)
$Document
:=
Sous chaine
(
$Document
;
$Pos
+
1
)
$Pos
:=
Position
(
◊Séparateur;
$Document
)
Fin tant que
Si
(
Nombre de parametres=
2
)
$0
:=
$Chemin
Sinon
$0
:=
$Document
Fin de si
… et vous écririez la méthode d'appel :
MonDossier:=
CheminDocument(
Fichier structure
;
"*"
)