homer73
Messages postés41Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention14 août 2014
-
8 juin 2012 à 15:23
debutemps
Messages postés34Date d'inscriptionjeudi 7 juin 2012StatutMembreDernière intervention14 juin 2012
-
9 juin 2012 à 09:28
Salut à tous,
Je bloque sur un truc bête et je n'arrive pas à formuler ma recherche sur google. Je voudrais pour chaque colonne de mon datagridview connaitre la longueur de la plus longue chaine de caractere.
Si vous avez des idées, se serait trop top! Merci d'avance
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 8 juin 2012 à 16:23
Bonjour,
Si ton datagridview est lié à une base de données, la plus grande chaîne potentielle est celle du champ dont la longueur "réservée" est la plus grande.
Ce qui n'en fait bien évidemment pas la plus grande chaîne effective puisque tu peux très bien avoir réservé 20 caractères pour le champ toto et 30 pour le champ titi, tout en ayant un champ toto plein et aucun champ titi de plus de 16 caractères, par exemple.
Dans de telles conditions, il est clair que la plus longue chaîne effective ne peut être connu qu'après poarcours de la totalité des champs de ta table (boucle assez lourde, donc).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 8 juin 2012 à 16:42
J'ajoute ceci, à ne pas perdre de vue :
La longueur logique d'une chaîne de caractère est le nombre des caractères qu'elle contient.
La longueur graphique d'une chaîne de caractères est autre chose et dépend : de la police (nom,taille,style), mais également du texte lui-même lorsque police autre qu'à échappement fixe.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 8 juin 2012 à 16:56
Exemple :
1) avec la police courier en taille 12 === "iiiiii" occupe 54 pixels et "MMMMMM" égalemùent 24 pixels
2) toujours en taille 12, mais avec la police "A1rial" "iiiiii" occupe 24 pixels alors que "MMMMMM" en occupe ... 78 ! La différence est E N O O O R M E .
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018211 8 juin 2012 à 16:57
Correction : en 1) : 54 dans les deux cas (erreur de frappe).
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Vous n’avez pas trouvé la réponse que vous recherchez ?
Ma boule de cristal me dit que tu essaies de dimensionner les colonnes de ton DGV en fonction de la longueur du texte.
Tu devrais jeter un oeil dans l'aide de VB.net dans la rubrique Datagridview, Classe. Il y a une propriété (DatagridviewColumn ou DatagridviewColomnHeader, je pense) qui permet de déterminer la largeur de la colonne. Il y a, si mes souvenirs sont exacts, trois choix. Un de ces choix est l'ajustement automatique selon la longueur du texte.
homer73
Messages postés41Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention14 août 2014 8 juin 2012 à 18:13
Merci beaucoup pour votre rapidité!!
Comme je le pensais, faut que je boucle . Ne connaissant pas toute les fonctions je pensait trouver un "raccourci" mais bon. Sinon je sais bien que la police influe sur la longueur mais mon but est de trouver la longueur de la chaine la plus grande en centieme de pouce avec une police et une taille donné. (pour une impression).
Merci encore de vos réponses
debutemps
Messages postés34Date d'inscriptionjeudi 7 juin 2012StatutMembreDernière intervention14 juin 20121 9 juin 2012 à 09:28
Bonjour,
petite rectification sur l'explication de ucfoutu, il parle de type de champs d'une base de données. l'explication est vraie pour les vieilles bases de données qui utilisaient un type char (n). Pour lequel il fallait spécifier une longueur. le type varchar a été introduit, il n'a pas de longueur prédifinie.
l'argument sql serait du genre
max(len(colonne)) from table
et renverrait le row qui contient la colonne dont la longueur est la plus grande