1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Division de longue chaine en deux chaine avec espace

Discussion dans 'Windev' créé par roross, Juil 8, 2023.

  1. roross

    roross New Member

    Inscrit:
    Juin 11, 2023
    Messages:
    8
    J'aime reçus:
    1
    Salut tout le monde
    j'ai une longue chaine, je veux divise en deux champs de saisie pour le champ de chiffre en lettre de chèque
     
    Tags:
  2. WDnet

    WDnet Member

    Inscrit:
    Mar 9, 2022
    Messages:
    57
    J'aime reçus:
    53
    Bonjour,
    Est-il possible d'avoir un exemple de chaine à traiter et le résultat souhaité?
     
  3. Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    358
    J'aime reçus:
    249
    Un début de réflexion :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    Gemini1961 apprécie ceci.
  4. Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    358
    J'aime reçus:
    249

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Bonjour,
    Est-il possible d'avoir un exemple de chaine à traiter et le résultat souhaité?
    Cliquez pour agrandir...
    Il a une longue chaine et il veut la diviser en deux chaines.
    (Sur un chèque il est difficile d'écrire un roman fleuve sur la même ligne.)
     
    Dandypunk apprécie ceci.
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    598
    J'aime reçus:
    328
    Bonjour

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Un début de réflexion :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Cliquez pour agrandir...
    Sans oublier

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    pour l'impression

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    pour l'affichage

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    WX1331 et Isabelle aiment ça.
  • Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    358
    J'aime reçus:
    249
    Salut Dandy,

    J'ai bien dit "début de réflexion".
    Je ne donne jamais du poisson.
     
  • roross

    roross New Member

    Inscrit:
    Juin 11, 2023
    Messages:
    8
    J'aime reçus:
    1
    Salut tout le monde.

    J'ai trouvé le code de ce sujet dans un forum

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    , mais je ne sais pas comment l'utiliser

    // gnXLargeur1 = étant la largeur de la 1ère ligne (paramètre)
    // gsXLettre_Montant étant la chaine en lettres du montant du chèque
    // gsXchaine_Limitation1 = paramètre de limitation + " "
    // gsXchaine_Limitation2 = " "+paramètre de limitation
    // remarque : si paramètre de limitation ="" alors
    // gsXChaine_Limitation1 et gsXChaine_Limitation2 =""


    sXChaine_Test, sXChaine1, sXChaine2 sont des chaines
    sTexte_Lettre est une chaine
    nXLongueur est un entier

    sTexte_Lettre=gsXchaine_Limitation1+ChaîneFormate(Gauche(gsXLettre_Montant,1),ccMajuscule)+Milieu(gsXLettre_Montant,2)+gsXchaine_Limitation2

    // Taille de sTexte_Lettre déterminée de façon dynamique
    nXLongueur=iLargeurTexte(iPolice(MaPolice)+sTexte_Lettre)

    nXOCURA est un entier = ChaîneOccurrence(sTexte_Lettre," ")+1

    SI nXLongueur > gnXLargeur1 ALORS
    POUR i=1 A nXOCURA
    sXChaine_Test+=ExtraitChaîne(sTexte_Lettre,i," ")
    SI iLargeurTexte(iPolice(MaPolice)+sXChaine_Test) < gnXLargeur1 ALORS
    sXChaine_Test+=" "
    sXChaine1=sXChaine_Test
    SINON
    sXChaine1=SansEspace(sXChaine1)+gsXchaine_Limitation2
    sXChaine2=gsXchaine_Limitation1

    POUR k=i A nXOCURA
    sXChaine2+=ExtraitChaîne(sTexte_Lettre,k," ")+" "
    FIN

    sXChaine2=SansEspace(sXChaine2)

    SORTIR

    FIN
    FIN
    RUB_Lettre1=sXChaine1
    RUB_Lettre2=sXChaine2
    SINON
    RUB_Lettre1=sTexte_Lettre
    RUB_Lettre2=""
    FIN
     
  • Gemini1961

    Gemini1961 Well-Known Member
    MEMBRE WX DUMP TEAM

    Inscrit:
    Jan 2, 2018
    Messages:
    578
    J'aime reçus:
    867
    Bonjour

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    La solution serait de commencer par suivre le guide d'autoformation proposé par PC Soft
    Vous y trouverez toutes les réponses à vos interrogations ;-)

    "Mettre la charrue avant les boeufs" n'est pas vraiment la bonne solution.

    Bien Cordialement
     
    Isabelle apprécie ceci.
  • roross

    roross New Member

    Inscrit:
    Juin 11, 2023
    Messages:
    8
    J'aime reçus:
    1
    Bonjour

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    mais comment trouver les variable suivant

    gnXLargeur1
    gsXLettre_Montant
    gsXchaine_Limitation1
    gsXchaine_Limitation2
     
  • Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    358
    J'aime reçus:
    249
    Et bien justement, en commençant par suivre le guide d'autoformation.
    (dixit

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    )

    Après, tout cela te semblera plus clair.

    (Il doit s'agir d'une procédure locale ou globale et ces variables sont envoyées à cette procédure.)
     
    WX1331 et Gemini1961 aiment ça.
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    598
    J'aime reçus:
    328
    Lis aussi la doc, entre autre, le chapitre concernant les chaînes, et en particulier le chapitre concernant les fonctions de gestion des chaînes.
    J'ai envie de faire des babas au rhum, j'ouvre mon livre de pâtisserie à la bonne page. Pourquoi ne pas faire la même chose avec le codage. On va manipuler des chaînes, pourquoi ne pas faire la même chose.

    Quelques remarques sur ton code
    1- quid des traits d'union ? (95875.99 s'écrit : quatre-vingt-quinze mille huit cent soixante-quinze Euros et quatre-vingt-dix-neuf centimes)
    2- es tu sur que la deuxième ligne est affichée dans sa totalité ?
    3- pense à travailler avec les positions
    e.g.
    Plutôt que
    Code (Windev):
    POUR k=i A nXOCURA
        sXChaine2+=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (sTexte_Lettre,k," ")+" "
    FIN
    Code (Windev):
    saLigne2=saTexte_Lettre[[

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saLigne1)+1 A]]
    s'exécutera plus rapidement
    On va manipuler des chaînes,
     
    #11 Dandypunk, Juil 13, 2023
    Dernière édition: Juil 13, 2023
  • roross

    roross New Member

    Inscrit:
    Juin 11, 2023
    Messages:
    8
    J'aime reçus:
    1
    Merci @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    j'ai pas compris comment exécuter mon code parce que les variables inconnu pour moi
    gnXLargeur1
    gsXLettre_Montant
    gsXchaine_Limitation1
    gsXchaine_Limitation2
     
  • Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    358
    J'aime reçus:
    249

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Merci @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    j'ai pas compris comment exécuter mon code parce que les variables inconnu pour moi
    Cliquez pour agrandir...
    C'est surtout parce ce n'est pas TON code mais du copier/coller.
    Et comme tu débutes et que tu n'as pas suivi le cours, tes paumé.
    C'est un peu comme si je me lançait dans la lecture de la Thora.

    Allez, arrêtes le carnage et suis les conseils de

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
    WX1331 et Dandypunk aiment ça.
  • Isabelle

    Isabelle Active Member

    Inscrit:
    Jan 18, 2018
    Messages:
    358
    J'aime reçus:
    249

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    Merci @

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    j'ai pas compris comment exécuter mon code parce que les variables inconnu pour moi
    Cliquez pour agrandir...
    C'est surtout parce que ce n'est pas TON code mais du copier/coller.
    Et comme tu débutes et que tu n'as pas suivi le cours, t'es paumé.
    C'est un peu comme si je me lançais dans la lecture de la Thora.

    Allez, arrêtes le carnage et suis les conseils de

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  • roross

    roross New Member

    Inscrit:
    Juin 11, 2023
    Messages:
    8
    J'aime reçus:
    1
    Merci de m'avoir donné des informations et des conseils, j'ai fait tout ce que j'ai pu et j'ai trouvé la solution
    Merci à tous
     
  • Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    598
    J'aime reçus:
    328

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    j'ai trouvé la solution
    Cliquez pour agrandir...
    Quelle est-elle.
    Cela pourra servir à d'autres personnes.
     
    Gemini1961 apprécie ceci.
  • roross

    roross New Member

    Inscrit:
    Juin 11, 2023
    Messages:
    8
    J'aime reçus:
    1
    Déclarations globales
    gnXLargeur1 est un entier = 125
    gsXLettre_Montant est une chaîne
    gsXchaine_Limitation1 est une chaîne
    gsXchaine_Limitation2 est une chaîne
    //------------------------------------------------------------------------------------
    [windev]
    gsXLettre_Montant = SAI_ChiffreEnLettre
    sXChaine_Test, sXChaine1, sXChaine2 sont des chaînes
    sTexte_Lettre est une chaîne
    nXLongueur est un entier
    RUB_Lettre1 est une chaîne
    RUB_Lettre2 est une chaîne
    sTexte_Lettre =gsXchaine_Limitation1 + ChaîneFormate(Gauche(gsXLettre_Montant,1),ccMajuscule)+Milieu(gsXLettre_Montant,2) + gsXchaine_Limitation2
    // Taille de sTexte_Lettre déterminée de façon dynamique
    nXLongueur =iLargeurTexte(iPolice(2)+sTexte_Lettre)

    nXOCURA est un entier = ChaîneOccurrence(sTexte_Lettre," ")+1

    SI nXLongueur > gnXLargeur1 ALORS
    POUR i=1 À nXOCURA
    sXChaine_Test+=ExtraitChaîne(sTexte_Lettre,i," ")
    SI iLargeurTexte(iPolice(2)+sXChaine_Test) < gnXLargeur1 ALORS
    sXChaine_Test+=" "
    sXChaine1=sXChaine_Test
    SINON
    sXChaine1 =SansEspace(sXChaine1)+gsXchaine_Limitation2
    sXChaine2 =gsXchaine_Limitation1

    sXChaine2=sTexte_Lettre[[Taille(sXChaine1)+1 À]]

    sXChaine2=SansEspace(sXChaine2)

    SORTIR

    FIN
    FIN
    RUB_Lettre1 =sXChaine1
    RUB_Lettre2 =sXChaine2
    SINON
    RUB_Lettre1 =sTexte_Lettre
    RUB_Lettre2 =""
    FIN
    SAI_SAI_ChiffreEnLettre1 = RUB_Lettre1
    SAI_SAI_ChiffreEnLettre2 = RUB_Lettre2
    [/windev]

    [​IMG]
     

    Fichiers attachés:

    • Chèque.png
      Chèque.png
      Taille de fichier:
      16.7 KB
      Affichages:
      12
  • Partager cette page

    Chargement...