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 :

Manipulation des chiffres et lettres


Sujet :

Delphi

  1. #1
    Membre du Club Avatar de smail21
    Profil pro
    Inscrit en
    Février 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2005
    Messages : 152
    Points : 61
    Points
    61
    Par défaut Manipulation des chiffres et lettres
    Bonjour
    j'ai un champs 'Code' dans ma table, de type String(10)
    les 6 premières positions je les génère en concaténant des chiffres et des lettres. exemple : D24563
    mon problème se situe dans les 4 dernières position qui sont un numéro séquentiel
    donc lorsque je génère un numéro séquentiel exemple : 2
    je dois l'insérer autant que caractère sur 4 position de façon à avoir '0002'
    et après concaténation je dois avoir 'D245630002' au lieu de 'D245632'

    comment faire ?

  2. #2
    Membre éprouvé
    Avatar de LinkinSelim
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Mars 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Mars 2006
    Messages : 365
    Points : 1 034
    Points
    1 034
    Par défaut
    cree une function qui converti un entier en un String(4),
    son fonctionnement sera comme suit :
    fonction(i):string;
    si i<10 alors retourner "000"+inttostr(i)
    sinon si i<100 alors retourner "00"+inttostr(i)
    sinon si i<1000 alors retourner 0"+inttostr(i)
    sinon retourner inttostr(i)

    j'espere que ca va t'aider, mnt a toi d'ecrire le programme :p

  3. #3
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Monchiffre := Format('%s%4i',['D245632',2]);
    Un petit coups de sur Format pour plus de détails

    Citation Envoyé par LinkinSelim Voir le message
    cree une function qui converti un entier en un String(4),
    son fonctionnement sera comme suit :
    fonction(i):string;
    si i<10 alors retourner "000"+inttostr(i)
    sinon si i<100 alors retourner "00"+inttostr(i)
    sinon si i<1000 alors retourner 0"+inttostr(i)
    sinon retourner inttostr(i)

    j'espere que ca va t'aider, mnt a toi d'ecrire le programme :p
    Maintenant tu me fais la même réflexion avec 000000000000000000000002
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  4. #4
    Membre du Club Avatar de smail21
    Profil pro
    Inscrit en
    Février 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2005
    Messages : 152
    Points : 61
    Points
    61
    Par défaut
    [QUOTE=Rayek;3453735]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Monchiffre := Format('%s%4i',['D245632',2]);
    Salut Rayek
    j'ai essayé ton code , j'ai eu un message d'erreur Format incorrect '%s%4i'

    j'ai retité le i, ça a pu s'exectuter
    mais je n'ai eu aucun résultat

    j'ai essayé : Monchiffre := Format('5 %s%4i',['D245632',2]);
    j'ai obtenu 5D245632

    c'est pas ce que je voulais avoir, si au moins il m'avait donné 0005D245632 !

  5. #5
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Points : 383
    Points
    383
    Par défaut
    bonjour

    méthode artisanale:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Texte := 'D245632' + copy(IntToStr(10000 + 2),2,4);
    mais qui fonctionne!
    a+

  6. #6
    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

    Une petite erreur d'inattention de la part de Rayek.

    Essaye comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Monchiffre := Format('%s%.4d', ['D245632',2]);
    Cl@udius

  7. #7
    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
    normalement mieux que tu utlise un champ calculer, et laissé le champ code de type integer, car cette présentation ne sera utile que à l'affichage
    pour ma part je préfére:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage(FormatFloat('00000',2));

    pourquoi pas ta prpre fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Function   MetZero(v:integer;n:integer):string;
    begin
         Result:=inttostr(v);
         while length(Result)<n do Result:='0'+Result;
    end;
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Cl@udius Voir le message
    Salut

    Une petite erreur d'inattention de la part de Rayek.

    Essaye comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Monchiffre := Format('%s%.4d', ['D245632',2]);
    Cl@udius


    Comme je ne l'utilise que rarement, me suis planter dasn la synthaxe mais l'idée etait la
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    var MesSixPremiers : string[6];
        MesQuatreDerniers : string[4];
        MonSequentiel : integer;
    begin ...
            MesSixPremiers:='D24563';
            MonSequentiel:=2;
            MesQuatreDerniers:=intToString(MonSequentiel);
            While length(MesQuatreDerniers)<4 do MesQuatreDerniers:='0'+MesQuatreDerniers;
            Result:=MesSixPremiers + MesQuatreDerniers; // = D245630002
    end;
    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  10. #10
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    On pouvait aussi faire de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    MaPremierpartie := 'D24563';
    MaDeuxiemepartie := '2';
    MonChiffre := MaPremierpartie + StringOfChar('0',4 - Length(MaDeuxiemepartie)) + MaDeuxiemepartie;
    50 méthodes différente pour un même résultat
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  11. #11
    Membre du Club Avatar de smail21
    Profil pro
    Inscrit en
    Février 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2005
    Messages : 152
    Points : 61
    Points
    61
    Par défaut
    Merci beaucoup
    j'ai résolu ça avec le correctif de Cl@udius
    ciao

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

Discussions similaires

  1. Convertir des chiffres en lettres
    Par azde7015 dans le forum VBA Access
    Réponses: 16
    Dernier message: 19/05/2019, 15h16
  2. convertir des chiffres en lettres
    Par stratocasters dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2008, 13h47
  3. convertion des chiffre en lettre
    Par maroon1970 dans le forum Windows Forms
    Réponses: 12
    Dernier message: 23/05/2007, 17h03
  4. composant pour convzrtir des chiffres en lettres
    Par ouldfella dans le forum Composants VCL
    Réponses: 6
    Dernier message: 01/06/2006, 11h40
  5. composant qui convertis des chiffres en lettre sous Delphi?
    Par ouldfella dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/03/2006, 14h28

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