Comment tronquer un texte en tenant compte des retour de chariot (line breaks)

Signaler
Messages postés
9
Date d'inscription
jeudi 16 novembre 2000
Statut
Membre
Dernière intervention
4 novembre 2005
-
Messages postés
9
Date d'inscription
jeudi 16 novembre 2000
Statut
Membre
Dernière intervention
4 novembre 2005
-
Bonjour,

J'aimerais savoir comment tronquer un texte en C#/ASP.NET pour ne pas perdre la mise en page de mon tableau.
Je m'explique. Je code présentement un module d'affichage de nouvelles. J'ai besoin de faire un résumé de chaque nouvelle pour l'afficher sur la page d'accueil de mon site. Je veux limiter le nombre de caractères tout en tenant compte des retours de chariot pour garder la mise en page du tableau ou je dispose le contenu de la nouvelle. Il faut donc que je n'affiche qu'un certain nombre de caractères et de lignes. Le contenu de la nouvelle vient d'un champ "Memo" dans une base de données Access.

Est-ce que quelqu'un a une idée?
Votre aide est très appréciée!
Merci!

3 réponses

Messages postés
346
Date d'inscription
lundi 8 septembre 2003
Statut
Membre
Dernière intervention
3 septembre 2007
3
fait la recherche de caractère entrée ( 0X0D et 0X0A dans ta chaine), tu seras le nbre de caractère entrée, et donc , le nombre de ligne

Par contre, sur le principe, tu m'as l'air de vouloir couper un résumé. Heu, c'est un peu bizarre. Pourquoi ne pas mettre une zone avec une scrollbarre horizontale ? au moins, tu mets tout ton résumé, sans t'occuper de la longueur du résumé.
Messages postés
441
Date d'inscription
mardi 2 décembre 2003
Statut
Membre
Dernière intervention
22 mai 2012
7
Salut Korg,

Si le retour chariot est codé sur 2 caractères, la façon la plus simple serait de faire :

// La chaîne récupéré sur Access
string memo = "toto\r\ntata\r\ntiti"
;

// On récupère les chaînes comprises entre les caractères à supprimer
string[] lines = memo.Split( '\r', '\n'
);

// On ne garde que les lignes de longueur supérieur à 0
ArrayList stringList = new
ArrayList();
foreach( string line in
lines )
{
if( line.Length > 0
)
stringList.
Add( line );
}

Toutes les lignes du mémo sont dans l'ArrayList
J'espère que ça répond à ta question...
Messages postés
9
Date d'inscription
jeudi 16 novembre 2000
Statut
Membre
Dernière intervention
4 novembre 2005

Je doit garder les retour de chariot pour afficher l'apercu de la nouvelle. Si la ligne est plus longue que la largeur de mon tableau, je perd aussi ma mise en page. Il faudrait donc gérer le retour automatique (wordwrap).