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

KoRG19 Messages postés 9 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 4 novembre 2005 - 19 juil. 2005 à 00:28
KoRG19 Messages postés 9 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 4 novembre 2005 - 19 juil. 2005 à 21:20
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

taoetc Messages postés 346 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 3 septembre 2007 3
19 juil. 2005 à 08:47
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é.
0
LUDINSKI Messages postés 441 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 22 mai 2012 8
19 juil. 2005 à 08:59
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...
0
KoRG19 Messages postés 9 Date d'inscription jeudi 16 novembre 2000 Statut Membre Dernière intervention 4 novembre 2005
19 juil. 2005 à 21:20
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).
0
Rejoignez-nous