IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Outils Delphi Discussion :

[Inno Setup] Modifier le contenu d'un fichier et type mismatch


Sujet :

Outils Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut [Inno Setup] Modifier le contenu d'un fichier et type mismatch
    Hello,

    Je tourne sous Inno Setup 5.4.3 et j'ai un petit souci pour modifier le contenu d'un fichier, j'ai le droit à un type mismatch lors de la lecture du contenu du fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    procedure CurStepChanged(CurStep: TSetupStep);
    var
      ConfigFile,NewFolder,FileContent: String;
    begin
        ConfigFile := ExpandConstant('{userappdata}')+'\test\data\test.xml';
     
    ...
            LoadStringFromFile(ConfigFile, FileContent);
            StringChange (FileContent, '<name>test</name>', NewFolder);
            DeleteFile(SrcFile);
            SaveStringToFile(ConfigFile,FileContent, True);
    end;
    L'erreur "TypeMismatch" porte sur la ligne "LoadStringFromFile", colonne 52, soit entre "FileContent" et la parenthèse fermante.
    Pourtant, le contenu du fichier peut bien se charger dans un string non ?

    Merci.

  2. #2
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    D'après la doc, LoadStringFromFile attend un AnsiString pour le deuxième paramètre.
    Donc je suppose un problème de type pour FileContent qui est implicitement un WideString.

    PS: En supposant bien-sûr que tu utilises la version unicode d'Inno Setup.

    @+ Claudius

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut
    Effectivement, j'utilise bien la version unicode.
    Cela marche mieux avec FileContent en AnsiString mais maintenant il râle sur la ligne suivante, pour la même raison.

    J'ai tenté de passer NewFolder également en AnsiString, sans succès.

  4. #4
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Utilise deux variables: FileContent et FileContentW.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    procedure CurStepChanged(CurStep: TSetupStep);
    var
      ConfigFile,NewFolder, FileContentW: string;
      FileContent: AnsiString;
    begin
        ConfigFile := ExpandConstant('{userappdata}')+'\test\data\test.xml';
     
    //...
            LoadStringFromFile(ConfigFile, FileContent);
            FileContentW := FileContent;
            StringChange (FileContentW, '<name>test</name>', NewFolder);
    //        DeleteFile(SrcFile);
            FileContent := FileContentW;
            SaveStringToFile(ConfigFile, FileContent, True);
    end;
    C'est pas 'terrible', mais bon...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut
    Mais ça marche
    (en tout cas ça compile)

    Merci

    J'attends la fin de la compilation pour tester et je passe le sujet en résolu dès que c'est ok.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut
    Tout marche parfaitement !
    Merci

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut


    Un p'tit ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 83
    Points : 52
    Points
    52
    Par défaut
    Rha zut, j'y ai pensé avant de poster et ça m'a échappé ensuite.
    Fait

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Inno Setup] : modifier un fichier ini
    Par Mimie37 dans le forum Outils
    Réponses: 0
    Dernier message: 30/07/2014, 18h05
  2. [Inno setup] Modifier un fichier json
    Par Difré91 dans le forum Outils
    Réponses: 3
    Dernier message: 20/02/2013, 12h40
  3. [Inno Setup] Modifier la valeur d'une clé de registre
    Par gege2061 dans le forum Outils
    Réponses: 8
    Dernier message: 08/04/2009, 18h42
  4. modifier le contenu d'un fichier
    Par progamer54 dans le forum ANT
    Réponses: 1
    Dernier message: 06/12/2007, 11h31
  5. Modifier le contenu d'un fichier
    Par Core8 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 30/01/2007, 15h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo