Bonjour à tous,
je n'ai pas trouvé sur ce forum de sujet traitant de la gestion automatique du retour à la ligne (word wrap).

Voici un algorithme simplisme :
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
Entrées/Sorties :
Entrée : texte
Sortie : texte
 
Variables :
   entier positif : tailleMaximumDesLignes
   entier positif : indexDuDernierEspace
   entier positif : indexDebutDeLaDernièreLigne
   entier positif : index
   tableau de caractères : texte
 
Algorithme :
//
// Initialisation
   tailleMaximumDesLignes      <- 80 // arbitraire
   indexDuDernierEspace        <- 0
   indexDebutDeLaDernièreLigne <- 0
   index                       <- 0
//
// Parcours de la chaine
   Tant que index < tailleDe(texte)
      Si texte[index] est un espace Alors // (espace, espace insécable, tabulations, retours ...)
         indexDuDernierEspace <- index
      Fin Si
      Si texte[index] est une nouvelle ligne Alors // (\n, \r ou \r\n selon le système)
         indexDuDernierEspace <- index
         indexDebutDeLaDernièreLigne <- index + 1
      Fin Si
      Si i - indexDebutDeLaDernièreLigne > tailleMaximumDesLignes Alors
         texte[indexDuDernierEspace] <- '\n' // (à adapter selon le système)
         indexDebutDeLaDernièreLigne <- indexDuDernierEspace
      Fin Si
      index <- index+1
   Fin Tant que


N'hésitez pas à améliorer. Cet algorithme ne gère pas le cas où il y aurait une séquence de caractères sans espaces qui serait plus grande que la taille maximale d'une ligne. Il a plein d'autres défauts aussi j'en suis sûr.