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 Discussion :

inclure code en langage R dans un .exe


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Sans emploi
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut inclure code en langage R dans un .exe
    Bonjour,

    Je viens de terminer un scipt en langage R (pour ceux qui ne connaitraient pas le R est un langage de haut niveau venant du C). J'aimerai maintenant créer un exécutable utilisant ce script. Je suis débutant en programmation, mais même les membres expérimentés du forum d'à coté ne savent visiblement pas créer un .exe directement en langage R.

    Cette voie étant bloquée, je me dirige vers vous afin que vous me donniez votre avis.
    Voici plus en détail ce que je souhaiterais faire en C.
    1/ Ouvrir une boite de dialogue où choisir le répertoire du fichier à traiter.
    2/ Proposer de cliquer sur l'un des fichiers rangé dans le répertoire indiqué (comme pour ouvrir un fichier depuis un tableur en fait)
    3/ Proposer 3 traitements au choix
    4/ Traiter le fichier grâce à mon code en R.
    5/ Proposer de recommencer ou de fermer

    Je précise, au cas où ce soit important, que mon code R modifie le fichier initial, et crée un nouveau fichier qu'il dépose à coté du premier, avec un nom différent.

    Et surtout, je voudrais compiler tout ça en .exe.

    Je suis débutant en C, mais j'ai vraiment besoin de réussir cette opération. S'il faut que je lise un bouquin ou 2 pour réussir à comprendre vos réponses, je le ferai!

    Merci par avance pour votre aide.

    P.S.: Quoiqu'il advienne, je vais me remettre au C durant cette année, mais sur ce coup, si une bonne âme me sort une solution quasi toute prête à utilser, j'en serai ravi, et mon horloge interne aussi!!

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Je ne pense pas que tu pourras compiler le script R en C, quoi qu'il existe peut-être des outils pour le faire. La solution pourra être donc d'appeler ce script avec ton programme, mais te faudra donc livrer le script R et je présume l'interpréteur qui va avec.

    Pour ce qui est de la suite, c'est une question d'interface graphique et ce n'est pas l'apanage du C. Il existe des bibliothèques pour le faire, une des plus connues étant certainement GTK+.

    Il te faudrait donc avoir quelques bases de C puis regarder comment fonctionne cette bibliothèque. Il y a une section dédiée sur Developpez.com.

  3. #3
    Membre averti
    Homme Profil pro
    Sans emploi
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    Je ne pense pas que tu pourras compiler le script R en C
    C'est bien ce que je craignais.

    quoi qu'il existe peut-être des outils pour le faire
    Si quelqu'un à une information là dessus...

    Pour ce qui est de la suite, c'est une question d'interface graphique et ce n'est pas l'apanage du C. Il existe des bibliothèques pour le faire, une des plus connues étant certainement GTK+.

    Il te faudrait donc avoir quelques bases de C puis regarder comment fonctionne cette bibliothèque. Il y a une section dédiée sur Developpez.com.

    Au final, il sera possible de compiler le programme avec les fonctions appelant la bibliothèque? (je crois que oui mais avant de me lancer je voudrais être sur)

    Si oui il ne me reste plus qu'à réécrire tout le programme en C...

  4. #4
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Salut

    pour ceux qui ne connaitraient pas le R est un langage de haut niveau venant du C
    il n'y a pas grand chose à voir entre la syntaxe du C et de R.


    Comme le dit Bktero, il est possible d'inclure la bibliothèque libR.dll pour pouvoir exécuter un script R dans un programme.
    Voir la doc : 5.12 Parsing R code from C (ainsi que les sections précédentes et suivantes)
    Voir également sur le forum en recherchant avec Rcpp et Rinside :
    Incorporer du code R dans un programme C++
    Introduction de code R dans C

  5. #5
    Membre averti
    Homme Profil pro
    Sans emploi
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    gbdivers,

    merci pour ta réponse.

    Je maitrise très mal le sujet. Que signifie exactement "inclure la bibliothèque libR.dll"?
    Est-ce que l'utilisateur de l'exécutable aura un fichier .dll créé quelque part dans un dossier pendant l’exécution du programme?
    ça voudrait dire que la partie en R serait lisible par l'utilisateur?
    Ou tout sera compilé et l'utilisateur ne saura même pas qu'un bout de code vient du R?

  6. #6
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    En effet...

    Un DLL, c'est une bibliothèque dynamique sous windows. Une application est un fichier EXE qui appelle des DLL, il faut donc fournir toi même le fichier DLL correspondant à R (ou 2 fichiers, je ne sais plus), les DLL des bibliothèques utilisées pour l'interface graphique, ainsi que toutes les bibliothèques que tu utilises

    Le code R peut être dans fichier texte externe ou être intégré dans le code C. Dans le premier cas, le code R sera visible par les utilisateurs (s'ils cherchent dans le dossier de l'application), dans le second cas, non

    Un utilisateur qui s'y connait pourra voir que tu utilises une DLL correspondant à R

    Par contre, j'ai l'impression qu'il te manque quand même pas mal de chose pour réaliser ce que tu souhaites, tu devrais peut être rester sur R ou prendre le temps d'apprendre le C avant de faire cela

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/09/2006, 12h07
  2. Inclure les BPL dans le .EXE ??
    Par syntage dans le forum Delphi
    Réponses: 6
    Dernier message: 01/06/2006, 17h13
  3. Inclure un fichier dans l'exe
    Par bandit boy dans le forum C++Builder
    Réponses: 5
    Dernier message: 11/05/2006, 20h45
  4. Inclure code XML dans une page HTML ?
    Par kpatoulu dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 24/10/2005, 14h59
  5. 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