Salut la famille je fais une page actualité et je cherche comment limiter le texte pour l'affichage sur la page
Version imprimable
Salut la famille je fais une page actualité et je cherche comment limiter le texte pour l'affichage sur la page
Salut,
Que veux-tu dire exactement ? Adapter la taille du texte par rapport à la taille de la fenêtre du navigateur ? Si cela est possible (et simplement), cela concerne JavaScript, pas Java ni JSP.
Si c'est pour limiter à une taille arbitraire, il s'agit de couper ton texte : soit il est contenu en brut dans une String, et ça se fait avec un subtring(), avec éventuellement un petit traitement pour éviter de couper au milieu d'un mot (recherche d'espace et ponctuation par exemple). soit c'est du html et ça va être moins simple (parsing, et parcourt du contenu affichable pour compter - tu peux avoir une idée de départ dans ce post, ou j'ai mis du code pour transformer du html en text à plat en utilisant un parseur html ).
au faite j'appel du texte depuis la base de données et je veux afficher quelques ligne sur la page
Mais c'est du texte brut (pas balisé html par exemple) ?
Ensuite, la notion de lignes c'est très vague. C'est quoi une ligne ? Un nombre de caractères ? Une largeur en pixels ?
Un nombre de caractere
Et bien, tu récupères ton texte dans une variable (String). Ensuite, tu calcules le nombre de caractères correspondant au nombre de ligne que tu veux :
Ensuite, version simple, tu coupes ta chaîne :Code:
1
2
3 int nombreDeCaracteresParLigne = 25; // par exemmple int nombreDeLignes = 3; // par exemple int nombreDeCaracteres = nombreDeCaractersParLigne * nombreDeLignes; // c'est le nombre maximum de caractères de ton texte
Maintenant, comme je le disais, ça risque de couper un mot en plein milieu, ce qui n'est pas terrible. Une solution est de chercher une espace dans le texte pour couper.Code:
1
2
3
4
5
6
7 String texte=/*... là je ne sais pas comment tu récupères ton texte, c'est ton appli */ if ( texte.length()>nombreDeCaracteres ) { // on a besoin de couper seulement si le nombre de caractères du texte est supérieur au nombre de caractères voulu texte = texte.substring(0, nombreDeCaracteres); // on ne garde que le début du texte, avec un maximum de nombreDeCaracteres caractères }
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14String texte=/*... là je ne sais pas comment tu récupères ton texte, c'est ton appli */ if ( texte.length()>nombreDeCaracteres ) { // on a besoin de couper seulement si le nombre de caractères du texte est supérieur au nombre de caractères voulu int positionEspace = texte.lastIndexOf(' ', nombreDeCaracteres); // si positionEspace <0 => aucun espace trouvée, on ne peut rien coupe du tout // si positionEspace=0, la seule espace est en première position, si on coupait là, on n'afficherait rien... if ( positionEspace>nombreDeCaractereParLigne ) { // ici un bon compromis, on aura au moins toujours une ligne de texte nombreDeCaracteres = positionEspace; } texte = texte.substring(0, nombreDeCaracteres); // on ne garde que le début du texte, avec un maximum de nombreDeCaracteres caractères }
Merci Patron tout passe bien :roll::roll::roll: