Lecture d'une cellule datagridview ligne par ligne

Résolu
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008 - 29 mai 2008 à 09:33
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008 - 30 mai 2008 à 10:29
Bonjour à tous,

La je crois que je vais avoir besoin de vos lumières...

J'ai un DataGridView, je sais le remplir, je sais le lire, mais voila, dans une cellule je vais avoir plusieurs ligne.

Je voudrais pouvoir lire les lignes indépendamment..
comment puis-je faire?

Pour lire le contenu entier de la cellule, j'utilise:
stringstNbContactsIntern = dataGridViewbdd.Rows[numlign].Cells[4].Value;

Mais quel sont les solutions pour lire lires lignes 1 à 1?
J'avais penser a écrire le contenu dans un fichier texte et le relire, étant donné que mes séparateur sont des retour chariot (\r\n)
en relisant le fichier ligne par ligne, pas de souci. Mais je pense que ce ne sera pas très propre, donc avez vous une autres solution ou pensez vous que la mienne soit une bonne solution?

Merci de votre aide.

4 réponses

Amelie_29 Messages postés 41 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 30 octobre 2008 1
29 mai 2008 à 16:28
En utilisant la méthode split() ?


string separateur = "\r\n";
// (peut être doubler les \)



char[] delim = separateur .ToCharArray();



string[] var_chaine = TaChaine.Split(delim );



element1 = var_chaine[0];
element2 = var_chaine[1];

...
3
GillouXman Messages postés 561 Date d'inscription mardi 4 mars 2008 Statut Membre Dernière intervention 10 juin 2010
29 mai 2008 à 13:53
compiler tous les éléments d'une ligne ?
stringbuilder dd = new stringBuilder();
loop sur i
dd.append(dataGridViewbdd.Rows[numlign].Cells[i].Value;)

end loop

dd.tostring();

un truc du style

loop end loop c'est juste pour dire qu'il faut une loop, a toi de voir les paramètres de la boucle

c'est une solution pas très pro si qqun a auter chose
0
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008
29 mai 2008 à 14:12
non, justement je cherche le contraire,

dans une cellule, tu ne peux ecrire que sur une ligne, mais si tu écris du texte (objet de la BDD: mémo) avec des retour chariot, comment fais tu pour récupérer le texte entre chaque retour chariot, (ou eventuellement, n'importe quel caractère de référence).

ex: le texte suivant:
"ceci est
un test
de découpage
des lignes"

récupéré de la cellule donnera: "ceci est \r\n un test \r\n de découpage \r\n des lignes"

et mon but et de récupérer chaque chaine entre les \r\n.

J'espère avoir été plus clair...

Merci de votre aide.
0
ggrug26 Messages postés 40 Date d'inscription jeudi 29 septembre 2005 Statut Membre Dernière intervention 30 mai 2008
30 mai 2008 à 10:29
Merci  Amelie_29

avec ton ptit exemple et l'aide j'ai pu sortir ça :

char[] delimiterChars = {
'.'};

string text =
Convert.ToString(dataGridViewlist.Rows[1].Cells[6].Value);

string[] resulText = text.Split(delimiterChars);

foreach (
string s
in resulText)
{

     MessageBox.Show(s);
}

Par contre si je comprend bien  il faut utiliser ta méthode si on veut utiliser 1 séparateur de plus d'un caractère:
string
separateur = "\r\n";
char[] delim = separateur .ToCharArray();

Sinon si on a qu'un caractère autant utiliser:
char[] delimiterChars = {
'.'};

En tout cas merci, c'est des trucs assez simple mais j'avais encore jamais eu besoin de couper des string en C#...
Donc quand on sait pas .. maintenant c'est bon ça me parait simple    :-)
Merci a toi.
0
Rejoignez-nous