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

Bases de données Delphi Discussion :

Une Clé à 4 positions


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 35
    Points : 29
    Points
    29
    Par défaut Une Clé à 4 positions
    Bonjour;
    Voilà je possède une table Client dont la Clé est en 4 position de typer String,
    je voudrai insérer automatiquemet durant la saisie dans un Edit.Text des zeros au debut de chaque Clé si la Clé est < à 4 Position.
    Exp: 0030 au lieu de 30

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 175
    Points : 41 367
    Points
    41 367
    Billets dans le blog
    63
    Par défaut
    dois-je conclure que la clé sera toujours numérique ?
    si oui facile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Edit1.Text:=format('%.4d',strtoint(Edit1.Text))
    devrait faire l'affaire, attention à l'erreur de conversion sinon !!

    une autre solution est d'utiliser un tmaskEdit pour forcer l'utilisateur à entrer les zeros, de plus cela permet de verifier que ce n'est que des chiffres

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 98
    Points : 72
    Points
    72
    Par défaut
    ta cle est tjrs convertible en interger ... je me demande pk mettre un champ string dans le cas ou ta cle ne contiendra que des chiffres ... vu que tu n'as qu'a faire la convertion donnée au dessus a chaque affichage

    au passage j'espere que ton champ clé c'est pas ta primary key parce que c pas optimisé du tout

  4. #4
    Nouveau membre du Club
    Profil pro
    Analyste
    Inscrit en
    Décembre 2002
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste

    Informations forums :
    Inscription : Décembre 2002
    Messages : 39
    Points : 30
    Points
    30
    Par défaut
    bein si ta clé est Alpha numérique voici un code que j'ai créer pour une clé 3 lettres est 6 chiffres si cela te convient:
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    function Aj_code(table:Ttable;fields,symb:string):string;
    //Symb:sont les trois lettres carateristique
     
    var
      CO,CL,CO1: string;
      j,l,m,k: Integer;
      i,max:integer;
       begin
    max:=0;
    if table.IsEmpty then
    begin
    result:=symb+'000001';
    end
    else
    begin
       CL:='';
    table.First;
    while not table.Eof do
    begin
    CO1:='';
    for j:=4 to length(table.FieldByName(fields).AsString) do
    //J:=4 car le symb est composé de 3 lettres vous pouvez bien sur changer!
    CO1:=Co1+table.FieldByName(fields).AsString[j];
    if strtoint(co1)> max then max:=strtoint(co1);
    table.Next;
    end;
    for m:=1 to 3 do
    // de même m de 1 à 3 car 3 lettres 
    CL:= CL+table.FieldByName(fields).AsString[m];
    i:=max+1;
    CO:=co+inttostr(i);
    L:=6- length(CO);// L=6 car le code est sur 6 entiers
    for k:=1 to L Do
    CO:='0'+CO;
    result:=Symb+CO;
    end;
    end;

  5. #5
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    une mini idée:dans onleave de TEdit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    begin
    while length(edit1.text)<4 do edit1.text:='0'+edit1.text;

  6. #6
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    pour mes besoin j'ai utilisé cette function.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Function AjouterZero(Valeur:String):String;
    begin
     case Length(Valeur) Of
       1: Result :='000'+Valeur;
       2: Result :='00'+Valeur;
       3: Result :='0'+Valeur;
       4: Result :=Valeur;
      end;
     
    end;

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut

    Personnelement je me suis écrit cette petite fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function LPad(AText: string; ALength: Integer; AFillChar: Char): string;
    begin
      if (Length(AText) >= ALength) or (ALength < 1) then
        result := AText
      else
        result := StringOfChar(AFillChar, ALength - Length(AText)) + AText;
    end;

    Et s'utilise comme ceci:
    AText est la chaine à traiter
    ALength est la longueur de la chaine retournée
    AFillChar est le caractère de remplissage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage(LPad(Edit1.Text, 4, '0'));
    end;
    @+ Claudius

  8. #8
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    +1 pour Cl@udius

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/07/2008, 18h18
  2. Réponses: 5
    Dernier message: 06/04/2008, 13h09
  3. Réponses: 2
    Dernier message: 19/11/2007, 16h53
  4. [MFC] Creer une frame de position fixe
    Par ZaaN dans le forum MFC
    Réponses: 1
    Dernier message: 28/11/2005, 21h31
  5. Centrer une <div> en position fixe sous IE
    Par Jorus dans le forum Mise en page CSS
    Réponses: 8
    Dernier message: 23/09/2004, 15h29

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