Inno Setup syntaxe de FilePath

Résolu/Fermé
Rataxes64 Messages postés 15 Date d'inscription vendredi 7 avril 2017 Statut Membre Dernière intervention 22 janvier 2020 - Modifié le 9 août 2018 à 16:21
baladur13 Messages postés 47561 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 11 avril 2025 - 9 août 2018 à 18:16
Bonjour à tous,
J'ai un problème de syntaxe de FilePath dans une recherche de fichiers existants qui concernent les chemins particuliers suivants
=> "Mes documents"
L'intitulé complet de ce chemin dépend du nom de l'utilisateur
=> "Program File"
L'intitulé dépend de la version de windows : avec ou sans "(x86)"
Pour cela j'a voulu passer par les balises
=> {pf32} pour Program File / Program Files (x86)
=> {userdocs} pour le chemin complet vers Mes documents

Voici mon code (en texte, car je n'ai pas su trouver quel modèle choisir) :
function InitializeSetup(): Boolean; 
var
        FilePath1: String
        FilePath2: String
        Result1: Boolean
        Result2: Boolean
        Result3: Booean
begin
        FilePath1: = '{pf32} \Chemin1\Fichier1.txt'
        FilePath2: = '{userdocs} \Chemin2\Fichier2.txt'
        Result1:= [/contents/1174-objet-filesystemobject-fso FileExists](FilePath1)
        Result2: = FileExists(FilePath2)
        Result3: = Result1 or Result2
end;

Cela ne fonctionne pas, alors qu'évidemment les fichiers existent bien.
Si j'entre les chemins dans FilePath1 et FilePath2 comme ci-dessous:

=> sous XP : c'est OK
FilePath1: = 'C:\Program Files\Chemin1\Fichier1.txt'
FilePath2: = 'C:\Documents and Settings\MonNom\Chemin2\Fichier2.txt'
=> sous W10 : le codage "(x86)" est refusé
FilePath1: = 'C:\Program Files (x86)\Chemin1\Fichier1.txt'
FilePath2: = 'C:\Documentsans Settings\MonNom\Chemin2\Fichier2.txt'


EDIT : Ajout des balises de code

Après maintes recherches je suis sans solution...
Merci à toute âme charitable de me dire où est mon erreur.

Cordialement.
A voir également:

5 réponses

jordane45 Messages postés 38463 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 avril 2025 4 741
Modifié le 9 août 2018 à 16:25
Bonjour,

Pour les balises de code : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code


Pour ton souci, ne serait-ce pas l'espace en trop qui pose problème ?
FilePath1: = '{pf32} \Chemin1\Fichier1.txt'

A tester :
FilePath1: = "{pf32}\Chemin1\Fichier1.txt"


edit : et les doubles quotes au lieu des simples....

1
Rataxes64 Messages postés 15 Date d'inscription vendredi 7 avril 2017 Statut Membre Dernière intervention 22 janvier 2020
9 août 2018 à 16:39
Bonjour,
Bizarrement mon code en texte est apparu automatiquement"balisé", mais incorrectement...
Le voici corrigé et balisé en Delphi

[Code]
function InitializeSetup(): Boolean; 
var
        FilePath1: String
        FilePath2: String
        Result1: Boolean
        Result2: Boolean
        Result3: Boolean
begin
        FilePath1: = '{pf32}\Chemin1\Fichier1.txt'
        FilePath2: = '{userdocs}\Chemin2\Fichier2.txt'
        Result1: = FileExists(FilePath1)
        Result2: = FileExists(FilePath2)
        Result3: = Result1 or Result2
end;


Pour répondre à Jordane45 (que je remercie de sa réaction rapide), effectivement, il n'y a pas d'espace en trop, et la syntaxe de FilePath dans l'aide indique bien le simple quote.
0
jordane45 Messages postés 38463 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 avril 2025 4 741
9 août 2018 à 17:17
Bizarrement mon code en texte est apparu automatiquement"balisé", mais incorrectement...

Ce n'est pas bizarre..... c'est moi qui te l'ai édité....
0
Rataxes64 Messages postés 15 Date d'inscription vendredi 7 avril 2017 Statut Membre Dernière intervention 22 janvier 2020
9 août 2018 à 17:49
Oh! pardon Jordane45... et merci quand même.

En fouillant encore, j'ai cru comprendre qu'utiliser ExpandConstant dans [Code] en tête de begin pourrait être une solution...

[Code]
function InitializeSetup(): Boolean; 
var
        PfDir: String;
        UsDir: String;
        FilePathA: Sring;
        FilePathB: String;
        FilePath1: String
        FilePath2: String
        Result1: Boolean
        Result2: Boolean
        Result3: Boolean
begin
        PfDir: = ExpandConstant('{pf32}')
        UsDir: = ExpandConstant('{userdocs}')
        FilePathA: = '\Chemin1\Fichier1.txt'
        FilePathB: = '\Chemin2\Fichier2.txt'        
        FilePath1: = 'PfDir + FilePathA'
        FilePath2: = 'UsDir + FilePathB'
        Result1: = FileExists(FilePath1)
        Result2: = FileExists(FilePath2)
        Result3: = Result1 or Result2
end;


Hélas, que néni, ça ne marche toujours pas... sauf à entrer l'intitulé exact des chemins à la mimine, et encore, seulement sous XP!
Là, je sèche complet, et prends mon mal en patience, en attendant les secours!
Cordialement
0
Rataxes64 Messages postés 15 Date d'inscription vendredi 7 avril 2017 Statut Membre Dernière intervention 22 janvier 2020
9 août 2018 à 18:01
Bonjour à tous,

J'ai (enfin) trouvé!
Voici le bon code ci-dessous :

[Code]
function InitializeSetup(): Boolean; 
var
        PfDir: String;
        UsDir: String;
        FilePath1: String
        FilePath2: String
        Result1: Boolean
        Result2: Boolean
        Result3: Boolean
begin
        PfDir: = ExpandConstant('{pf32}')
        UsDir: = ExpandConstant('{userdocs}')
        FilePath1: = '\Chemin1\Fichier1.txt'
        FilePath2: = '\Chemin2\Fichier2.txt'        
        Result1: = FileExists(PfDir + FilePath1)
        Result2: = FileExists(UsDir + FilePath2)
        Result3: = Result1 or Result2
end;


J'espère que cela évitera ma galère à d'autres ...
Cordialement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Rataxes64 Messages postés 15 Date d'inscription vendredi 7 avril 2017 Statut Membre Dernière intervention 22 janvier 2020
9 août 2018 à 18:05
Euh... comment marquer "Résolu"?
Merci
0
baladur13 Messages postés 47561 Date d'inscription mercredi 11 avril 2007 Statut Modérateur Dernière intervention 11 avril 2025 13 615
9 août 2018 à 18:16
0