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

C++Builder Discussion :

Inclure un fichier dans l'exe [FAQ]


Sujet :

C++Builder

  1. #1
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut Inclure un fichier dans l'exe
    Bonjour,
    Je souhaite inclure dans mon exécutable un fichier comprenant du texte. Existe-t-il une méthode à la manière LoadFromResourceName mais pour un TStringList. J'ai inclu mon fichier au projet, pensant qu'il ferait le lien automatiquement, mais apparemment non!

    J'aimerais obtenir un exécutable indépendant de ce fichier. Si quelqun connaît une méthode pour inclure ce fichier en ressource et le moyen de le charger dans un TStringList, je suis preneur.

    Merci d'avance

  2. #2
    Membre éclairé
    Avatar de Interruption13h
    Inscrit en
    Août 2005
    Messages
    603
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 603
    Points : 786
    Points
    786
    Par défaut
    Salut !

    La solution la plus simple est de sauvegarder la ressource su disque,et la recherger aprés sur TStringList !

    Pour inclure le fichier text dans l'executable,on cée un fichier ressources.rc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FICHIER_TEXT  RCDATA chemin de ton fichier text
    et puis l'ajouter dans ton projet (Projet->Ajouter au projet) Maj+F11.


    Aprés pour charger ce fichier dans une TStringList :

    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
     
     
    void __fastcall TForm1::btn1Click(TObject *Sender)
    {
    AnsiString Chemin_Fichier_Text=ExtractFilePath(Application->ExeName)+"<a href="file://\\resource.txt" target="_blank">\\resource.txt</a>";
     
    TResourceStream *MRes=new TResourceStream((int)HInstance,"FICHIER_TEXT",RT_RCDATA);
    MRes->SaveToFile(Chemin_Fichier_Text);//Sauvegarder le fichier text
    delete MRes;//Libération de la mémoire allouée pour la ressource
     
    TStringList* LISTE=new TStringList;
    LISTE->LoadFromFile(Chemin_Fichier_Text);
    //Traitement ...
    delete LISTE;//Libération de la mémoire allouée pour la liste
    }

    J'éspère que c'est ce que tu veux !

    a++
    Plus tu prends part aux joies et chagrins des gens, plus ils te sont proches et chers. Mais c'est le chagrin et les problèmes qui vous rapprochent le plus.

    (Mark TWAIN)

  3. #3
    Membre actif Avatar de damienlann
    Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    293
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2005
    Messages : 293
    Points : 249
    Points
    249
    Par défaut
    c'est pas mal ca...
    c'est possible de faire la meme chose pour un .wav ou tout autres extensions?

  4. #4
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    Cela s'appelle des DLLs ressources,

    Tu peux faire la même chose avec n'importe quel format sous Linux, en t'amusant à transformer tes fichiers en char * dans un header C.
    Nul ne peut mieux connaitre la connaissance qu'elle-même.

  5. #5
    Membre éprouvé
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Points : 1 007
    Points
    1 007
    Par défaut
    Merci bien Interruption13h, ca a l'air de correspondre pile poil à ce que je veux je vais tester ca.

    sinon pour damienlann, tu devrais jeter un oeil au truc donné pour inclure un BMP, tu faires de même pour les ICO, WAV.
    Merci encore Interruption13h

  6. #6
    CGi
    CGi est déconnecté
    Expert éminent
    Avatar de CGi
    Inscrit en
    Mars 2002
    Messages
    1 030
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 1 030
    Points : 8 202
    Points
    8 202
    Par défaut
    ça y est aussi pour le wav
    http://chgi.developpez.com/tips2/#tips23

    Et pour une ressource non standard un curseur animé
    http://chgi.developpez.com/tips1/#tips3
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

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

Discussions similaires

  1. Inclure les BPL dans le .EXE ??
    Par syntage dans le forum Delphi
    Réponses: 6
    Dernier message: 01/06/2006, 17h13
  2. inclure un fichier dans perl
    Par ibtisss dans le forum Langage
    Réponses: 3
    Dernier message: 13/04/2006, 16h20
  3. Réponses: 3
    Dernier message: 16/02/2006, 14h49
  4. Inclure une DLL dans le .exe final?? possible?
    Par xavmax dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2005, 17h00

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