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 :

variable string et ligne de commande a compiler.


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut variable string et ligne de commande a compiler.
    Bonjour à tous,
    Je programme une application delphi depuis laquelle je veux que son utilisateur puisse inscrire sa propre ligne de commande à compiler par un simple composant Edit.
    Je m'explique par un exemple:
    J'ai une liste de 4000 élèves en format txt où l'on retrouve sur chacune des ligne le nom, prénom, classe, codepermanent, naissance, etc. Je lis le fichier texte ligne par ligne et emmagasine les informations dans des variables. Depuis ces variables, je veux créer un nom de login windows et un mot de passe ayant une forme personnalisé par la bonne imagination de l'utilisateur de l'application. Cependant, si l'utilisateur tape dans le Edit la forme de mot de passe désiré comme une ligne de commande delphi (ex: "nom[1] + prenom [1] + codepermanent + classe"), il serait pas logique d'inscrire dans ma programmation ("login := Edit1.text") car Edit1.text retourne une string. Existe-t-il un type de variable qui pourrait contenir une ligne de commande à compiler ou est-ce tout simplement impossible?
    Merci de votre aide et j'attend de vos nouvelles!
    Bob.

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    Tout est possible, mais cela m'apparait très difficile à maitriser.
    La première question est de savoir comment vérifier que la syntaxe de la formule entrée par l'utilisateur est correcte.

  3. #3
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    C'est tout a fait possible ....
    Je l'ai fait plein de fois

    L'idee simple mais efficace reside dans la gestion des fichier include.
    et dans le fichier inc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    login := nom[1] + prenom [1] + codepermanent + classe;
    Il ne te reste plus qu'a generer ce fichier include via une application.


    Par contre cela necessite uen compilation.
    Pour rendre la chose dynamique, a l'execution, tu peux externaliser la partie dynamique dans uen dll dont genere le source et que tu compile en ligne de commande, couplé avec une chargement/dechargement dynamique, tu peux en cours d'execution modifier le comportement de ton application. Mais la ca deviens lourd pour ce que tu desire faire.

    Sinon, il te reste la solution "scripts". J'ai cherche a un moment a faire un truc dans le genre et je suis tombe sur quelques composant de gestion de scripts pascal. tu genere un TString list contenant le code delphi a executer et le transmet au moteur de script qui le compile et l'execute a la volee.

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    si j'ai bien compris il est question de donner une formule de calcul du mot de passe.

    il te suffit de définir des macros, c'est pas très compliqué

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function EvalPassword(const Formule:string):string;
    var
     i:integer;
     s:string;
    begin
     s:=Formule;
     i:=pos('{nom}',s); // recherche de "{nom}" dans la formule
     if i>0 then begin
      s:=copy(s,1,i-1)+Edit1.Text+copy(s,i+5,MaxInt);
     end;
    end;
    je te laisse imaginer la suite, par exemple si {nom} est suivi d'un [, alors il faut prendre le nombre qui suit et se termine par un ] pour savoir quelle partie du nom il faut prendre

    à toi en fait de définir la syntaxe de tes macros $nom ou {nom} ou ce que tu veux

    il y a aussi plusieurs façon de lire la Formule, soit des recherche/remplace, soit tu lit caractère par caractère la chaine pour déterminer ce qu'il faut faire

    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
     
    Etat:=ChaineSimple;
    Variable:='';
    Result:='';
    for i:=1 to length(Formule) do begin
     if Formule[i]='$' then begin
      if Variable<>'' then begin
       if Variable='nom' then Result:=Result+Edit1.Text;
      end;
      Etat:=NomVariable
      Variable:='';
     end else 
     case Etat of
      ChaineSimple: Result:=Result+Formule[i];
      NomVariable : Variable:=Variable+Forume[i];
     end;
    end;
    ça c'est un code rapide qui présente quelques inconvénients, mais l'idée est là
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 489
    Par défaut
    salut

    il existe un bibliothèque toutes faite pour cela

    regarde du cote des expression régulière
    l'avantage étant une formulation standard

    @+ Phil

  6. #6
    Futur Membre du Club
    Inscrit en
    Août 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 4
    Par défaut Merci
    Merci à tous pour m'avoir aidé! je vais suivre vos conseilles et continuer mon prog dans mes temps libres prochain!

Discussions similaires

  1. Trouver la ligne les commandes de compilation
    Par troumad dans le forum Code::Blocks
    Réponses: 2
    Dernier message: 02/12/2009, 13h40
  2. Inclure une variable dans la ligne de commande system()
    Par todovski dans le forum Débuter
    Réponses: 1
    Dernier message: 12/02/2009, 15h42
  3. Réponses: 0
    Dernier message: 11/10/2007, 06h38
  4. Comment faire passer un string en ligne de commande ?
    Par cococococococo dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 27/06/2007, 17h15
  5. [langage] variable selon la ligne de commande
    Par rodolphedj dans le forum Langage
    Réponses: 3
    Dernier message: 13/12/2004, 13h21

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