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] Virtual Text , Log


Sujet :

Outils Delphi

  1. #21
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 796
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 796
    Points : 13 475
    Points
    13 475
    Par défaut
    D'après l'aide, les constantes ne sont pas interprétées avant l'appel de AfterInstall. Donc essayer ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure LogOutput(aFileName :string);
    var
      Output :AnsiString;
    begin
      if LoadStringFromFile(ExpandConstant(aFileName), Output) then
        Log(Output);
    end;

  2. #22
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 166
    Points : 41 348
    Points
    41 348
    Billets dans le blog
    63
    Par défaut
    Bonjour,
    Citation Envoyé par Ayouten Voir le message
    Tout d'abord lors de mes test, le TArrayString est un type inconnu, j'ai donc utilisé le TArrayOfString,
    Oui, bon tapé sans filet je me suis planté (mais bon, il y avait l'aide)
    D'ailleurs ce type, je le connais pas, est-ce que l'on ne peut pas utiliser un TStrings à la place ?
    Low et High cela évitait d'avoir à trouver le nombre de lignes du TArrayOfString, c'est du Delphi donc pas forcément connu par InnoSetup ?
    une boucle for i:=0 to Output.Count-1 do est-elle possible ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    procedure LogOutput(aFileName :string);
    var
     Output : TStringList;
     i : integer;
    begin
         Output:=TStringList.Create;
         OutPut.LoadFromFile(aFileName, Output);
         for i:=0 to Output.Count- do  Log(Output[i]);
        Output.Free;
    end;


    Et j'ai mis a la place de log le nom de mon fichier
    Alors là, c'est l'objectif est de mettre ce qui a été enregistré dans le fichier par la commande de redirection > dans le fichier log de l'installation pas de remettre dans le même fichier !
    à moins que aFileName soit différent de '{tmp}\logfb.txt' j'ai également vu des ExpandConstant trainer dans la discussion pourquoi cela serait différent ici ?

    Toujours le même problème, le SaveStringToUTF8File ne s'exécute pas
    la SaveString ou le LoadStringsFromFile ? Je rappelle quand même qu'il y a un if , de plus est-ce dans le bon fichier que c'est contrôlé ?

    en reprenant :
    1 - est-ce que la redirection de la commande vers un fichier fonctionne ?
    2- est-ce que le nom de ce fichier est bien différent du fichier log de l'installation,
    2' aFileName est bien le nom de ce fichier
    3- est-ce que le fichier contenant la redirection est bien lu (en gros que retourne LoadStringsFromFile true ou false)


    POST SCRIPTUM Je viens de relayer l'annonce sur le forum Firebird, Firebird 2.5 ne sera bientôt plus maintenu sa dernière version de mise à jour (2.5.9) vient de sortir, alors 2.0

  3. #23
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    Ah oui, en effet cela était bien dû au manque du ExpandConstant,

    Youhou sa fonctionne

    Dernière question, question simple pour la proprété de la lecture des log

    Est-il possible de positionner le message Stop Guardian qui est pour l'instant comme cela

    2019-06-26 10:20:37.036 [SC] ControlService ‚chec(s) 1062 :

    Le service n'a pas ‚t‚ d‚marr‚.


    Stop Guardian =
    de le positionner comme cela :

    2019-06-26 10:20:37.036 Stop Guardian = [SC] ControlService ‚chec(s) 1062 :

    Le service n'a pas ‚t‚ d‚marr‚.
    Sachant que mon code est comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        ShellExec('open',ExpandConstant('{sys}\cmd.exe'),ExpandConstant('/C sc.exe stop FirebirdGuardianDefaultInstance > {tmp}\logfb.txt'),'', SW_HIDE,         ewWaitUntilTerminated, ErrorCode);
                    if SaveStringToFile(ExpandConstant('{tmp}\logfb.txt'), #13#10 + 'Stop Guardian = ' + #13 #10, True) Then
                    if LoadStringFromFile(ExpandConstant('{tmp}\logfb.txt'), Output) Then
                       Log(Output);

    Cordialement
    Ayouten

  4. #24
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 166
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 166
    Points : 41 348
    Points
    41 348
    Billets dans le blog
    63
    Par défaut
    Ce qui me choque c'est que le innosetup utilisé ne soit pas unicode
    Le service n'a pas ‚t‚ d‚marr‚.
    c'est moche
    Le service n'a pas été démarré.
    c'est mieux !

    pour le reste c'est à mon avis non sauf à triturer (pure programmation par exemple avec stringchange) la variable Output avant de l'envoyer dans le log


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        ShellExec('open',ExpandConstant('{sys}\cmd.exe'),ExpandConstant('/C sc.exe stop FirebirdGuardianDefaultInstance > {tmp}\logfb.txt'),'', SW_HIDE,         ewWaitUntilTerminated, ErrorCode);
                    if SaveStringToFile(ExpandConstant('{tmp}\logfb.txt') Then
                    if LoadStringFromFile(ExpandConstant('{tmp}\logfb.txt'), Output) Then
                       Log(StringChange(Output,'[SC]','Stop Guardian = [SC]'));

  5. #25
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    j'ai un gros doute sur le fait de ce que je viens de réaliser grâce à votre aide ...

    On vient de réaliser les logs grâce à cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Filename: "{sys}\cmd.exe"; Parameters: "/C ""{pf32}\Firebird\Firebird_2_0\bin\instclient.exe"" install gds32 > {tmp}\logfb.txt"; Flags: runhidden skipifdoesntexist waituntilterminated; AfterInstall: LogOutput('{tmp}\logfb.txt');
    Or si je comprends bien, la ligne du dessus ne dépend en aucun car du résultat de cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Filename: "{pf32}\Firebird\Firebird_2_0\bin\instclient.exe"; Parameters: "instclient install gds32" ;WorkingDir: "{pf32}\Firebird\Firebird_2_0\bin" ; Flags: runhidden skipifdoesntexist waituntilterminated ;
    Le résultat dans les logs dépend t'il donc la ligne ci-dessus ?

    Cordialement
    Ayouten

  6. #26
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 796
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 796
    Points : 13 475
    Points
    13 475
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Ce qui me choque c'est que le innosetup utilisé ne soit pas unicode
    Plutôt un problème d'invité de commande à mon avis

    Citation Envoyé par Ayouten Voir le message
    de le positionner comme cela :
    C'est vraiment du détail
    Ajoute le titre à l'écriture du log. Et pendant que tu y es, ajoute un paramètre titre à LogOutput et utilise cette procédure dans tous les cas.

    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
    16
    17
     
    [Run]
    Filename: "{sys}\cmd.exe"; Parameters: "/C ""{pf32}\Firebird\Firebird_2_0\bin\instclient.exe"" install gds32 > {tmp}\logfb.txt"; Flags: runhidden skipifdoesntexist waituntilterminated; AfterInstall: LogOutput('Installation du client', '{tmp}\logfb.txt');
     
    [Code]
    procedure LogOutput(aTitle :string; aFileName :string);
    var
      Output :AnsiString;
    begin
      if LoadStringFromFile(ExpandConstant(aFileName), Output) then
        Log(aTitle +' = ' +Output);
    end;
     
    ...
     
    ShellExec('open',ExpandConstant('{sys}\cmd.exe'),ExpandConstant('/C sc.exe stop FirebirdGuardianDefaultInstance > {tmp}\logfb.txt'),'', SW_HIDE, ewWaitUntilTerminated, ErrorCode);
    LogOutput('Stop Guardian', '{tmp}\logfb.txt');
    Citation Envoyé par Ayouten Voir le message
    Le résultat dans les logs dépend t'il donc la ligne ci-dessus ?
    Réflexion, réflexion

    La ligne du dessus, tu la supprimes ! Tu ne veux pas installer deux fois le client non ?

  7. #27
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 41
    Points : 14
    Points
    14
    Par défaut


    Merci beaucoup pour votre aide

    Cordialement
    Ayouten

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/09/2010, 09h02
  2. [Inno Setup] Lire valeur edit.text
    Par karitoo dans le forum Outils
    Réponses: 2
    Dernier message: 17/10/2007, 12h25
  3. Delphi et inno setup
    Par drakes dans le forum Outils
    Réponses: 10
    Dernier message: 17/09/2004, 10h15
  4. [INNO SETUP][ORACLE] Installer le client Oracle avec Inno
    Par AnnSo dans le forum Bases de données
    Réponses: 11
    Dernier message: 19/08/2004, 16h21
  5. Bde Inno Setup et Test
    Par Fxg dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/07/2004, 14h35

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