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 :

[Lazarus] Mettre des data dans un exécutable [FAQ]


Sujet :

Lazarus Pascal

  1. #1
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut [Lazarus] Mettre des data dans un exécutable
    bonjour

    j’ai conçu un petit logiciel avec Lazarus qui me permet de faire des recherches dans un livre. (qui marche très bien !)

    Actuellement au démarrage de mon logiciel, le programme charge le livre en mémoire. (quelques méga)

    Donc actuellement je suis obligé de mettre l’exécutable et le fichier texte qui contient le livre dans un dossier.

    Ma question est donc la suivante, peut-on inclure dans l’exécutable les données issues du fichier texte ?

    merci de vos conseils.

    JoseF

  2. #2
    Membre éclairé

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Points : 773
    Points
    773
    Par défaut
    Tu as la possibilité d'utiliser la methode classique manuelle : créer un fichier .rc et le compiler en .res avec brcc32 de delphi ou windres fourni avec lazarus, puis de l'inclure dans ton code source avec la syntaxe {$R MaRessource.res} etc... Cette methode est bien expliquée dans les tutoriels de delphi, cependant elle n'est pas portable...

    Lazarus fourni un outil : lazres qui va te permettre de faire ce que tu cherches.

    lazres est par défaut dans le répertoire outil en tant que code source, il te faudra tout d'abord le compiler...

    Puis tu peux, avec cet outil créer un fichier *.lrs (lazarus resource) que tu vas pouvoir inclure à ton fichier final en ajoutant la ligne :


    Cette méthode a l'avantage d'etre portable !!!!

    Voici un petit exemple avec un memo et un bouton qui me permet d'afficher dynamiquement le contenu d'un fichier texte en resource dans mon executable dans le memo lors de l'appui sur le bouton...

    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
     
    { Le fichier livre.lrs a ete cree a l'aide de l'outil lazres en lançant la 
    commande : lazres livre.lrs livre.txt }
     
    unit Unit1; 
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, Buttons,
      StdCtrls;
     
    type
     
      { TForm1 }
     
      TForm1 = class(TForm)
        Button1: TButton;
        Memo1: TMemo;
        procedure Button1Click(Sender: TObject);
      private
        { private declarations }
      public
        { public declarations }
      end; 
     
    var
      Form1: TForm1; 
     
    implementation
     
    { TForm1 }
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Memo1.Lines.Add(lazarusresources.Find('livre').Value);  // affichage
    end;
     
    initialization
      {$I unit1.lrs}
      {$I livre.lrs}  // inclusion de la ressource
    end.
    Bonne programmation
    Clandestino

  3. #3
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    Merci bien !! c 'est super ! je vais tester et te tenir au courant

    je connaissais cette façon de faire dans un basic... (bon ne pas rire...)


    De plus je n'avais pas pensé à la portabilité, de ce fait mon executable pourra être compilé pour Linux !! (j'aurais peut être besoin de conseil à ce moment là ..)

    suggestion mettre ton explication dans un tutorial ou dans la FAQ ?

  4. #4
    Membre habitué

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 192
    Points : 176
    Points
    176
    Par défaut
    re bonjour,

    Voilà ça fonctionne [presque] parfaitement.

    en effet sous windows98 (je pense que ça vient de L'OS ..) le mémo se bloque à 32K environ .. en windows XP pas de soucis ! (ça ouvre plusieurs méga en un temps record !)

    (linux je testerai en son temps)


    merci bien clandestino !

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

Discussions similaires

  1. Possibilité de mettre des images dans un DrawGrid?
    Par tactical dans le forum C++Builder
    Réponses: 8
    Dernier message: 11/07/2005, 17h38
  2. Interet de mettre des fichiers dans une base de donnée
    Par Oberown dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 04/07/2005, 11h35
  3. Réponses: 2
    Dernier message: 27/03/2005, 16h09
  4. Mettre des donnees dans un fichier Excel
    Par Mouawad dans le forum C++Builder
    Réponses: 6
    Dernier message: 07/10/2004, 14h55
  5. [VB6] Mettre des sons dans un dll
    Par Mr Meuble dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 17/07/2004, 19h50

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