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

Delphi Discussion :

Exécuter une fonction Linux dans un programme Delphi


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Mars 2022
    Messages : 4
    Par défaut Exécuter une fonction Linux dans un programme Delphi
    Bonjour à tous,

    je suis à la recherche d'une possibilité d'effectuer certaines commandes Linux dans un programme Delphi. Par exemple la commande me permetant de supprimer tous les fichiers vieux de plus de 7 jours serait directement sous Ubuntu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find /root/PAServer/scratch-dir/log -mtime +7 -delete
    La meme commande j'ai envie de l'appeler dans un programme Delphi qui va fonctionner sous Linux. Sous Windows on aurait simplement appelé un ShellExecute (ShellExecute(Handle, 'open', PChar(filePath+'Test.exe'), PChar(test_host+' '+test_host), nil, SW_SHOWNORMAL);).

    Merci pour votre attention.

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 083
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 083
    Par défaut
    Ceci ressemble à votre demande Execute external program from Linux/Delphi 10.2 console application, je suppose que vous avez déjà exploré cette piste sans succès ?!

    Sinon la fonction _system de Posix.Stdlib
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Mars 2022
    Messages : 4
    Par défaut
    Bonjour,

    j'essaie d'adapter le programme sur votre liendepuis un bon bout à mon cas. J'ai pas encore trouvé la bonne solution.

  4. #4
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Je ne me souviens plus si "find" est une commande bash ou un programme.

    Dans le premier cas, faut appeler bash et la lui passer, dans le second directement exécuter la ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _system(PAnsiChar(AnsiString(commande)));
    avec la bonne unité devrait effectivement régler la question, comme sur Mac, mais attention à un point important : le chemin d'accès à "find" n'est peut-être pas connu, donc ne trouvant pas la commande, il ne fait rien. Mieux vaut spécifier le nom complet avec son chemin.

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 592
    Billets dans le blog
    65

  6. #6
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Mars 2022
    Messages : 4
    Par défaut
    ce programme je l'ai déjà vu aussi, mais là on a à faire à une lecture de fichier si j'ai bien compris.

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Mars 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Mars 2022
    Messages : 4
    Par défaut
    c'est pas sous windows?


    Citation Envoyé par pprem Voir le message
    Je ne me souviens plus si "find" est une commande bash ou un programme.

    Dans le premier cas, faut appeler bash et la lui passer, dans le second directement exécuter la ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _system(PAnsiChar(AnsiString(commande)));
    avec la bonne unité devrait effectivement régler la question, comme sur Mac, mais attention à un point important : le chemin d'accès à "find" n'est peut-être pas connu, donc ne trouvant pas la commande, il ne fait rien. Mieux vaut spécifier le nom complet avec son chemin.

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/02/2020, 16h45
  2. Réponses: 2
    Dernier message: 18/09/2017, 10h23
  3. Réponses: 6
    Dernier message: 23/12/2015, 17h00
  4. Comment intégrer une image dans un programme Delphi
    Par DanCode dans le forum Débuter
    Réponses: 8
    Dernier message: 03/03/2010, 13h06
  5. Réponses: 2
    Dernier message: 24/06/2003, 20h31

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