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 :

Générateur de code


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Par défaut Générateur de code
    Bonjour, je voudrais créer un générateur de code (lorque j'appui sur un button1) qui me générerait des code de l'ordre de 2lettres et 6chiffres (dans un Edit1).
    Je voudrais que les 2 lettres soient à l'extrémité du code et que les 6 chiffres soient entre.
    Ce qui donnerait: a000000a.

    Dans mon OnFormCreate() je dois ajouter une ligne "Rendomize" pour initialiser le générateur.
    Je penses qu'il faut que j'utilise la function Gencode.

    Le problème c'est que je ne sais pas comment m'y prendre

    Merci d'avance

  2. #2
    Membre expérimenté
    Avatar de didier.cabale
    Homme Profil pro
    Conseil - Consultant en systèmes d’information
    Inscrit en
    Août 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d’information
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2004
    Messages : 130
    Par défaut
    vois l'aide de Delphi sur les fonctions "Random [ ( Range: Integer) ]" et "Chr(X: Byte)". Tu devrais y arriver avec çà.

    Je penses qu'il faut que j'utilise la function Gencode.
    Quelle version de Delphi utilises-tu? PS: Penses à le préciser sur tes prochains messages.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Par défaut
    Merci je vais y jeter un oeil.
    J'utilise Delphi 7

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Par défaut
    Je penses que ce que je proposes juste mais le problème que je rencontre est le suivant:
    J'ai réussi à faire une variable pour I (Integer) mais je n'arrives pas à faire celle pour Result.
    Merci de me dire à quoi est égal Result pour la variable.
    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
    uses
    Math;
     
    function GenCode: string;
    var
    I: Integer;
    begin
    SetLength(Result, 8);
    [FONT=Courier New]Result[/FONT][1] := Chr(RandomRange(Ord('A'), Ord('Z') + 1));
    Result[8] := Chr(RandomRange(Ord('A'), Ord('Z') + 1));
    for I := 2 to 7 do
    Result[i] := Chr(RandomRange(Ord('0'), Ord('9') + 1));
    end;
    

  5. #5
    Membre émérite
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Par défaut
    moi j'aurai plutot fait un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Result := Chr(65 + Random(26)) +
              Chr(48 + Random(10)) +
              Chr(48 + Random(10)) +
              Chr(48 + Random(10)) +
              Chr(48 + Random(10)) +
              Chr(48 + Random(10)) +
              Chr(48 + Random(10)) +
              Chr(65 + Random(26));

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 491
    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 491
    Par défaut
    salut


    dans le formcreate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Randomize; // Réinitialisation de la suite pseudo-aléatoire
    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
    Const
        TabCarNum = '0123456789';
        TabCarMin = 'abcdefghijklmnopqrstuvwxyz';
     
    Function GenCode: string;
    var
    I,ii : Integer;
    s : String;
    l  : integer;
    begin
      Result := '';
      s:=  TabCarMin;   
      l := Length(S);
      i := Round(Random(l+1));
      Result[1] := S[i];
       i := Round(Random(l+1));
      Result[8] := S[i];
     
       s:=  TabCarNum;   
        l := Length(S);
        for ii := 2 to 7 do
       begin 
          i := Round(Random(l+1));
          Result[ii] :=S[i] 
       end;
    end;
    @+ Phil

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 11
    Par défaut
    Merci je vais essayer

  8. #8
    Membre émérite
    Avatar de Bloon
    Homme Profil pro
    Consultant Freelance
    Inscrit en
    Avril 2002
    Messages
    467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant Freelance
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2002
    Messages : 467
    Par défaut
    Une solution plus générique :

    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
     
    function genCode(masque : string) : string;
    var
      i, n : integer;
    begin
      n := length(masque);
      result := stringofchar(' ', n);
      for i := 1 to n do
        // le masque est un a, on génère une lettre
        if (masque[i] = 'a') then
          result[i] := chr(65 + random(26))
        // le masque est un 0, on génère un chiffre
        else if (masque[i] = '0') then
          result[i] := chr(48 + random(10))
        // sinon erreur
        else
          raise Exception.create('Caractère [' + masque[i] + '] invalide dans le masque');
    end;
    Pour ton cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unCode := genCode('a000000a');
    Bloon

Discussions similaires

  1. [andromda]Infos sur andromda, générateur de code JAVA
    Par ugos dans le forum EDI et Outils pour Java
    Réponses: 5
    Dernier message: 08/09/2009, 15h30
  2. [Sunopsis] et les ETL générateur de code ?
    Par manuaccess10 dans le forum ODI (ex-Sunopsis)
    Réponses: 5
    Dernier message: 20/12/2006, 12h54
  3. Générateur de code
    Par jojo. dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 1
    Dernier message: 21/04/2006, 10h24
  4. Réponses: 4
    Dernier message: 21/02/2006, 19h45
  5. [Info][API]Générateur de code
    Par Archangelo dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 24/07/2005, 14h59

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