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

Lazarus Pascal Discussion :

Récupérer le numéro de version de mon projet [FAQ]


Sujet :

Lazarus Pascal

  1. #1
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 095
    Points : 1 531
    Points
    1 531
    Billets dans le blog
    5
    Par défaut Récupérer le numéro de version de mon projet
    Salut

    Je cherche à récupérer le numéro de version de mon projet. En Delphi j'avais le code suivant:
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    function TMainForm.ApplicationVersion: string;
    var
      VerInfoSize, VerValueSize, Dummy: DWord;
      VerInfo:  Pointer;
      VerValue: PVSFixedFileInfo;
    begin
      VerInfoSize := GetFileVersionInfoSize(PChar(ParamStr(0)), Dummy);
      {Deux solutions : }
      if VerInfoSize <> 0 then
        {- Les info de version sont inclues }
      begin
        {On alloue de la mémoire pour un pointeur sur les info de version : }
        GetMem(VerInfo, VerInfoSize);
        {On récupère ces informations : }
        GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
        VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
        {On traite les informations ainsi récupérées : }
        with VerValue^ do
        begin
          Result := IntToStr(dwFileVersionMS shr 16);
          Result := Result + '.' + IntToStr(dwFileVersionMS and $FFFF);
          Result := Result + IntToStr(dwFileVersionLS shr 16);
          Result := Result + IntToStr(dwFileVersionLS and $FFFF);
        end;
     
        {On libère la place précédemment allouée : }
        FreeMem(VerInfo, VerInfoSize);
      end
     
      else
        {- Les infos de version ne sont pas inclues }
        {On déclenche une exception dans le programme : }
        raise
        EAccessViolation.Create('Les informations de version de sont pas inclues');
    end;
    Mais Lazarus bloque sur

    VerValue: PVSFixedFileInfo;

    Si quelqu'un à déjà fait la manip

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 218
    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 218
    Points : 41 483
    Points
    41 483
    Billets dans le blog
    63
    Par défaut
    dans ma version de Lazarus je trouve cette déclaration dans

    \lazarus\fpc\2.2.5\source\packages\winunits-jedi\src\jwawinver.pas

    donc si tu l'inclues ou re-déclares ... maintenant , cela ne sera pas portable LINUX

  3. #3
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 095
    Points : 1 531
    Points
    1 531
    Billets dans le blog
    5
    Par défaut
    Je cherche quelque chose de portable au maximum. Le code que j'ai présenté est un code Delphi pour Windows.

    Dans l'EDI Lazarus on peut mettre un numéro de version du projet, il doit bien être possible de le récupérer quelque part

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 218
    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 218
    Points : 41 483
    Points
    41 483
    Billets dans le blog
    63
    Par défaut
    pas sur ce qui s'en dit sur le forum "officiel" en tout cas , enfin pour les recherches que j'y ai faite la solution proposée serait plutôt de mettre les infos dans un inifile bizarre quand même , s'il y a option pour mettre les infos de version de le programme elles doivent être quelque part

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je ne suis pas un grand expert Linux (ni Windows d'ailleurs). Mais, si l'on en croit "Web", il semble que la différence de structure des 2 OS [Win et Nux] rendent cette fonction impossible à Lazarus.

    Un fichier sous Linux (Unix) est une chaîne de caractères non structurée. A tout fichier est associé un bloc d'informations (i-node) décrivant ses propriétés (droits d'accès, propriétaire ...). Ce bloc ne contient pas le nom du fichier. Le standard POSIX s'est basé sur les systèmes de fichiers traditionnels d'Unix. Cette norme impose donc que les fichiers réguliers aient les attributs suivants :
    La taille du fichier en octets
    Identifiant du périphérique contenant le fichier
    L'identifiant du propriétaire du fichier
    L'identifiant du groupe auquel appartient le fichier
    Le numéro d'inode qui identifie le fichier dans le système de fichier
    Le mode du fichier qui détermine quel utilisateur peut lire, écrire et exécuter ce fichier
    horodatage (timestamp) pour
    La date de dernière modification ctime de l'inode (affichée par la commande stat ou par ls -lc)
    La date de dernière modification du fichier mtime (affichée par le classique ls -l)
    La date de dernier accès atime (affichée par la commande stat ou par ls -lu)
    Un compteur indiquant le nombre de liens physiques sur cet inode.
    Remarque: les inodes ne contiennent pas les noms de fichier.
    Lazarus appelle des API Windows pour lire et écrire des metadonnées (notamment la version du fichier) incluses dans les exe lors de leur construction sous Windows.... Il lui est donc impossible de répliquer la méthode sous Linux ne serait-ce que parce que ce numéro de version n'existe pas dans les i-nodes.

    On arrive à contourner le problème en interne en C++ puisqu'il existe un include qui gère cette fonction lors de la construction du programme. Mais il s'agit d'une fonction interne propre au langage et qui stocke ce renseignement dans le code compilé (aussi bien en Windows [même si ce n'est pas nécessaire car la méthode "classique" suffirait], qu'en Linux).

    Bref, pour ne pas me compliquer la vie, j'ai simplement créé une variable dans le programme que je remets à jour avant de le compiler lorsque la version est distribuable. Sinon, à la manière du C++ ci-dessus, il serait en effet intéressant de récupérer la valeur incrémentée par Lazarus, la stocker dans un fichier inc et inclure ce fichier dans le .so (ou l'exe) pour pouvoir en profiter.

    Cordialement. Gilles
    Dernière modification par Invité ; 16/03/2010 à 19h59.

  6. #6
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 095
    Points : 1 531
    Points
    1 531
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par selzig Voir le message
    Bref, pour ne pas me compliquer la vie, j'ai simplement créé une variable dans le programme que je remets à jour avant de le compiler lorsque la version est distribuable.
    Je sens que ça va ce finir comme ça d'autant plus que le programme doit tourner aussi sur Mac
    Citation Envoyé par selzig Voir le message
    Sinon, à la manière du C++ ci-dessus, il serait en effet intéressant de récupérer la valeur incrémentée par Lazarus, la stocker dans un fichier inc et inclure ce fichier dans le .so (ou l'exe) pour pouvoir en profiter.
    Oui ça serait bien. Il y a une wish list sur le site de Lazarus ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Petite solution maison rapide et non optimisée testée sous Windows et Linux pour inclure le N° de version lors de la construction de l'exécutable :

    Dans votre projet en cours :
    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
    var
      Form1: TForm1; 
      gsVersionAsString: string;
    implementation
     
    { TForm1 }
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      gsVersionAsString:= LazarusResources.Find('gsVersion').Value;
      showmessage(gsVersionAsString);
    end;
     
    initialization
      {$I unit1.lrs}
      {$i version.lrs} // Fichier ressource créé par incversion
    end.
    Dans l'IDE de votre projet en cours :
    Projet-->Option du compilateur-->Compilation-->Exécuter avant-->Commande :
    • incversion.exe sous windows
    • incversion ou incversion.so sous Linux (Cela dépend de l'extension que vous avez choisie pour vos prog Linux. Par défaut incversion)

    Evidemment dans Option du projet, il faut avoir activé la gestion des versions...
    -------------------------------------------
    Compiler (une seule fois) le petit source FPC suivant (non optimisé*) dans votre répertoire de développement pour obtenir la génération du fichier version.lrs :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    program incversion;
    {$mode objfpc}{$H+}
    uses
      {$IFDEF UNIX}{$IFDEF UseCThreads}
      cthreads,
      {$ENDIF}{$ENDIF}
      Classes,sysutils
      { you can add units after this };
     
     var
      sl: TStringList;
      iLoc : integer;
      F : text;
      sResult : string;
     
    {$IFDEF WINDOWS}{$R incversion.rc}{$ENDIF}
     
    begin
     sresult := '';
     sl := TStringList.Create;
     //Récupération du N° de version ds le fichier project1.rc
     sl.LoadFromFile('project1.rc');
     for iLoc :=0 to sl.Count-1 do
        if pos('FILEVERSION',sl.Strings[iLoc])>0 then begin
           sResult := trim(
            StringReplace(
             StringReplace(sl.Strings[iLoc],'FILEVERSION','',[rfReplaceAll,rfIgnoreCase]),
             ',','.',[rfReplaceAll,rfIgnoreCase]));
         break;
      end;
      sl.Free;
      //Génération du fichier version.lrs qui contient le N° de version récupéré
      AssignFile(F,'version.lrs');
      Rewrite(F);
      Writeln (F,'LazarusResources.Add(''gsVersion'',''TXT'',[');
      Writeln (F,''''+sResult+'''');
      Writeln(F,']);');
      CloseFile(F);
    end.
    *Bon, il faudrait rajouter des Exceptions et évidemment passer en paramètre le nom du fichier.rc (ici project1.rc) mais c'était simplement pour voir : c'est facilement faisable en C++, il n'y a aucune raison que cela ne le soit pas en Lazarus.

    3 petites rqs :
    • De la même façon, on peut incorporer le copyright, et tout autre renseignement utile...
    • A mon avis, la méhode de gestion traditionnelle des metadonnées sous Windows doit être conservée (en plus) parce que c'est le standard dans cet environnement...
    • Evidemment, il n'y a pas à fournir le fichier version.lrs : le project1.exe ou project1.so (ou project1) se suffit à lui-même.


    Vérifié sous 0.9.28.2 [Xp et Ubuntu 9.10**] et 0.9.26.2 [Lenny]

    **installée en catastrophe avec Wubi car j'ai essayé en vain une nouvelle fois d'installer 0.9.28.2 sous Lenny (alors que la 0.9.26.2 est déjà installée)... Pendant un moment aucune des 2 ne fonctionnait plus. Après avoir désinstallé péniblement 0.9.28.2, 0.9.26.2 est repartie. Pour l'instant, je préfère ne pas désinstaller 0.9.26.2 sans être sûr que 0.9.28.2 s'installe sans difficulté particulière sur Lenny. Quelqu'un peut-il me le confirmer ? Mon premier test alors que la 0.9.26.2 n'était pas installée et que je venais d'installer Lenny n'a pas mis cela en évidence. J'ai préféré réinstaller l'OS après beaucoup de suspicion quant à la désinstallation de la 0.9.28.2. A chaque fois, on apprend mais c'est quand même la galère...

    Cordialement. Gilles
    Dernière modification par Invité ; 17/03/2010 à 19h44.

  8. #8
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 095
    Points : 1 531
    Points
    1 531
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par selzig Voir le message

    **installée en catastrophe avec Wubi car j'ai essayé en vain une nouvelle fois d'installer 0.9.28.2 sous Lenny (alors que la 0.9.26.2 est déjà installée)... Pendant un moment aucune des 2 ne fonctionnait plus. Après avoir désinstallé péniblement 0.9.28.2, 0.9.26.2 est repartie. Pour l'instant, je préfère ne pas désinstaller 0.9.26.2 sans être sûr que 0.9.28.2 s'installe sans difficulté particulière sur Lenny. Quelqu'un peut-il me le confirmer ? Mon premier test alors que la 0.9.26.2 n'était pas installée et que je venais d'installer Lenny n'a pas mis cela en évidence. J'ai préféré réinstaller l'OS après beaucoup de suspicion quant à la désinstallation de la 0.9.28.2. A chaque fois, on apprend mais c'est quand même la galère...
    Merci pour l'astuce je vais regarder ça.

    Pour ce qui est des problèmes d'installations effectivement c'est galère. J'ai pu installer automatiquement la version 0.9.26 mais j'ai du la virer car mon projet a été écrit avec la 0.9.28.2 et il manquais des chose. Pour installer la 0.9.28.2 j'ai d'abord téléchargé les fichier .rpm et là j'ai bricolé comme j'ai pu pour les installer mais au final il manquais les sources pour recompiler Lazarus (nécessaire pour l'installation des paquets). Du coup j'ai fait le ménage et j'ai téléchargé les fichiers .deb que j'ai installé plus facilement et là visiblement ça fonctionne. J'y ai passé la journée quand même quand je pense que certain disent que Linux c'est formidable par rapport à Windows . Bon il faut dire que je suis super grand débutant Linux, il y a vait peut être plus simple.

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 218
    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 218
    Points : 41 483
    Points
    41 483
    Billets dans le blog
    63
    Par défaut
    @selzig un grand bravo

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Petit prob encore : comment gère-t-on les exceptions en FPC ? Mes try except et try finally génèrent un message d'erreur... et bloque le programme (halt)

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    program incversion;
     
    {$mode objfpc}{$H+}
     
    uses
      {$IFDEF UNIX}{$IFDEF UseCThreads}
      cthreads,
      {$ENDIF}{$ENDIF}
      Classes,sysutils
      { you can add units after this };
     
     var
     sl: TStringList;
     i : integer;
     rcPath, rcFile : string;
     F : text;
     sResult : string;
     //Deb --- Pour générer exception....
     r : real;
     a: integer;
     //Fin --- Pour générer exception....
     
    {$IFDEF WINDOWS}{$R incversion.rc}{$ENDIF}
     
    begin
     rcPath  := '';
     rcFile  :='';
     sResult := '';
     
     if (Paramcount <> 0)  then begin
     
      if trim(ParamStr(1))<>'' then begin
       rcPath := trim(IncludeTrailingPathDelimiter(ExtractFilePath(trim(ParamStr(1)))));
       if rcPath = PathDelim then rcPath:='';
       rcFile := ExtractFileName(trim(ParamStr(1)));
       rcFile := trim(ChangeFileExt(rcFile,'.rc'));
      end;
     
      if rcFile<>'' then
       if not FileExists(rcPath+rcFile) then rcFile := '';
     
      if rcFile<>'' then begin
       sl := TStringList.Create;
       try
        //Deb Création de l'exception
        a:= 0;
        r := 4 div a;
        //Fin Création de l'exception
        sl.LoadFromFile(rcFile);
        for i :=0 to sl.Count-1 do
         if pos('FILEVERSION',sl.Strings[i])>0 then begin
          sResult := trim(
                     StringReplace(StringReplace(sl.Strings[i],'FILEVERSION','',[rfReplaceAll,rfIgnoreCase]),
                     ',','.',[rfReplaceAll,rfIgnoreCase]));
          break;
         end;
       finally
        sl.Free;
       end;
      end;
     
     end;
     
     AssignFile(F,rcPath+'version.lrs');
     Rewrite(F);
     Writeln (F,'LazarusResources.Add(''gsVersion'',''TXT'',[');
     Writeln (F,''''+sResult+'''');
     Writeln(F,']);');
     CloseFile(F);
     end.
    On compile incversion. cmd sous win puis incversion project1.exe

    Message d'erreur dans l'éditeur DOS : an unhandled exception occured at $...
    J'ai parcouru les bugs fpc... Je n'arrive pas à me rendre compte si c'est un comportement normal ou non actuellement? Bug référencé dans le tracker Lazarus 0.9.24 donc "vieux fpc" mais pour les derniers ?

    Ce prob d'exception est quand même gênant (aussi bien sous Win que sous Nux) : si incversion en génère une alors, si votre projet fait appel au moment de la compilation à incversion, alors ce dernier ne compile pas... et ne génère pas de message d'erreur.

    Sinon, hormis ce problème d'exception, en enlevant la génération de l'erreur, le code ci-dessus fonctionne maintenant quelque soit le nom du projet à la condition de préciser incversion $ProjFile() dans les propriétés de votre projet en cours ( Projet-->Option du compilateur-->Executer avant-->Commande).

    Testé sous 09.28.2 [XP et Ubuntu 9.10] et 09.26.2 [Lenny]
    Cordialement. Gilles
    Dernière modification par Invité ; 18/03/2010 à 15h45.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Finalement

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    program incversion;
    {Obj. : Inclure le N° de version dans le code compilé d'un projet
     
     Use  : 1. Compiler ce programme une fois puis le placer dans le rep du projet en cours...
                Projet->Option du compilateur->Executer avant->Commande : incversion $ProjFile()
               ... ou dans un autre rep [ex. your_dir]
                Commande : your_dir\incversion $ProjFile() ou your_dir/incversion $ProjFile()
     
            2. Ensuite dans le code du projet en cours, ajouter :
                var
                  Form1: TForm1;
                  gsVersionAsString: string;
                [...]
                procedure TForm1.FormCreate(Sender: TObject);
                begin
                  gsVersionAsString:= LazarusResources.Find('gsVersion').Value;
                  showmessage(gsVersionAsString);
                end;
     
     Prob : try except et finally traditionnel bloque le programme - Solution :
            celle adoptée mais ne fonctionne qu'avec except
     
     Test : Lazarus 09.28.2 [XP-Ubuntu 9.10] - Lazarus 0.9.26.2 [Debian Lenny]
     Date : 20100317}
     
    {$mode objfpc}{$H+}
     
    uses
      {$IFDEF UNIX}{$IFDEF UseCThreads}
      cthreads,
      {$ENDIF}{$ENDIF}
      Classes,sysutils
      { you can add units after this };
     
    type ExceptClass = Class(Exception);
     
    var
     sl : TStringList;
     rcPath , rcFile : string;
     sResult : string;
     F : text;
     i : integer;
     
     
    {$IFDEF WINDOWS}{$R incversion.rc}{$ENDIF}
     
    begin
     rcPath  := '';
     rcFile  := '';
     sResult := '';
     
     if (Paramcount <> 0)  then
      if trim(ParamStr(1))<>'' then begin
       //1. Load  ParamStr
       try
         rcPath := trim(IncludeTrailingPathDelimiter(ExtractFilePath(trim(ParamStr(1)))));
         if rcPath = PathDelim then rcPath := '';
         rcFile := ExtractFileName(trim(ParamStr(1)));
         rcFile := trim(ChangeFileExt(rcFile,'.rc'));
       except
        on e : SysUtils.Exception do begin
         rcPath := '';
         rcFile := '';
        end;
       end;
       //2. File.rc exists ?
       if rcFile <> '' then
        if not FileExists(rcPath+rcFile) then rcFile := '';
       //3. Recover FILEVERSION
       if rcFile <> '' then begin
        sl := TStringList.Create;
        try
         sl.LoadFromFile(rcFile);
         for i := 0 to sl.Count-1 do
           if pos('FILEVERSION',sl.Strings[i])>0 then begin
              sResult := trim(
                 StringReplace(StringReplace(sl.Strings[i],'FILEVERSION','',[rfReplaceAll,rfIgnoreCase]),
                ',','.',[rfReplaceAll,rfIgnoreCase]));
              break;
           end;
        except
         on e : SysUtils.Exception do begin
          // on e : Required to continue otherwise the program aborts on error
         end;
        end;
        sl.Free;
       end;
      end; {End of if trim(ParamStr(1))<>''}
     
     //In all cases
     try
      AssignFile(F,rcPath+'version.lrs');
      Rewrite(F);
      Writeln (F,'LazarusResources.Add(''gsVersion'',''TXT'',[');
      Writeln (F,''''+sResult+'''');
      Writeln(F,']);');
      CloseFile(F);
     except
      on e : SysUtils.Exception do begin
       // on e : Required to continue otherwise the program aborts on error
      end;
     end;
     
    end.
    Cordialement. Gilles
    Dernière modification par Invité ; 18/03/2010 à 16h53.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/09/2006, 17h48
  2. Récupérer le numéro de version
    Par samed dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/04/2006, 17h42
  3. Réponses: 5
    Dernier message: 14/10/2005, 11h39
  4. Réponses: 2
    Dernier message: 11/07/2005, 16h47
  5. Gestion du numéro de version d'un projet
    Par Chris B dans le forum EDI
    Réponses: 5
    Dernier message: 22/11/2004, 15h08

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