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

C++ Discussion :

Justification de texte (Ne pas couper les mots)


Sujet :

C++

  1. #1
    Membre très actif

    Inscrit en
    Août 2005
    Messages
    401
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 401
    Par défaut Justification de texte (Ne pas couper les mots)
    Bonjour a vous tous,
    Je dois enregistrer save[NbCarRest] (tableau de char de taille du nombre de caractère restant) car je justifie un texte. pour revenir à la ligne

    EX: je suis un chat gris (la justification sur 13caractère)
    Cela donne:
    je suis un chat gr
    is

    En fait je voudrais que gr revienne à la ligne pour cela, j'ai mon tableau de char ligne[largeur] (largeur étant le nombre de caractère de la justification)
    Et je voudrais en fait mettre des espaces à la place de gr et le gr le passer en dessous pour faire:
    je suis un chat
    gris

    mais je sais pas comment mettre save[nbRestCAr] et ligne[largeur] sans que cela se concatène car sinon cela va dépasser :/

    Alors il y a deux solutions.
    SOLUTION 1:
    Soit quand je lis ma ligne et que j'enregistre dans ligne[] c'est là que j'empeche de couper les mots.
    Où debut est l'indice du dernier espace connu dans le tableau ligne.
    Où nbRestCAr est le nombre de caractère que l'on doit enregistrer pour ne pas couper le mot.
    Où largeur est la taille de la justification. et donc la taille de ligne[]
    ALGO:
    si ligne[largeur-1]!=' '
    alors nbRestCar=(largeur-1)-debut
    pour i de 1 à nbRestCar faire
    save[i-1]=ligne[i+debut]
    fpour
    fi
    //Alors là j'ai enregistrer dans mon tableau mais j sais pas si c'est juste.
    //Ensuite je sais pas comment faire pour que cela ne décale pas toutes les lignes et je ne sais pas inclure save[] dans le début de ligne[]
    Je dois mal m'y prendre ou j'ai mal raisonné.

    SOLUTION 2:
    Alors là je voulais que quand ma fonction qui écrit ligne[] est appelé bah j'empêche de couper les mots. Mais en n'y réfléchissant je pense que c'est lors de la lecture donc cette solution me pourrait inutile a décrire puisque cela me parait faux.

    Voilà si vous pourriez me guider dans mon raisonnement qui me parait faussé, je vous en seraient très reconnaissant.
    Amicalement Thibaud

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Toujours lire les archives, ne serait-ce que récentes d'un forum dans lequel on poste.
    http://www.developpez.net/forums/sho...d.php?t=267212

    il faut une étape intermédiaire
    texte initial -> texte où les mots sont redistribués, mais non justifiés -> texte final.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. couper les mots longs
    Par angsthase dans le forum Langage
    Réponses: 3
    Dernier message: 26/01/2010, 10h56
  2. Comment couper les mots trop longs
    Par marcello2 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 09/06/2009, 08h00
  3. [6.0.5][Webi] Ne pas couper les cellules
    Par afssaLERH dans le forum Débuter
    Réponses: 6
    Dernier message: 12/08/2008, 16h18
  4. Découper une chaine sans couper les mots
    Par jgoguel dans le forum Langage
    Réponses: 3
    Dernier message: 31/10/2007, 11h22
  5. Réponses: 2
    Dernier message: 22/11/2006, 12h09

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