[C#] Récupérer mots de .txt et save dans tab
Fermé
Stargirlfr
Messages postés
1175
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
12 février 2017
-
19 mars 2009 à 17:00
Stargirlfr Messages postés 1175 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 12 février 2017 - 20 mars 2009 à 22:45
Stargirlfr Messages postés 1175 Date d'inscription lundi 18 juin 2007 Statut Membre Dernière intervention 12 février 2017 - 20 mars 2009 à 22:45
A voir également:
- [C#] Récupérer mots de .txt et save dans tab
- Save as pdf - Télécharger - Bureautique
- Recuperer video youtube - Guide
- Recuperer message whatsapp supprimé - Guide
- Impossible de récupérer mon compte gmail - Guide
- Comment récupérer un compte facebook piraté - Guide
7 réponses
halo_quebec
Messages postés
161
Date d'inscription
samedi 14 avril 2007
Statut
Membre
Dernière intervention
9 juin 2010
10
20 mars 2009 à 13:56
20 mars 2009 à 13:56
tu pourrais essayer de faire une classe personnel et ensuite faire une liste generique de ta classe personnel(List<Personnel>), d'apres moi sa serai la meilleur façon,
cependant, si tu veut tjr faire un tableau 2d, tu peu utiliser cette methode pour lire ton fichier, ainsi que les 2 constante... La methode te retourne un tableau 2d de ton fichier texte(s'il a 4 colonne et moins que 15 ligne...)
sur ce, bonne chance
public const int NB_LIGNE = 15;
public const int NB_COLONNE = 4;
private string[,] lire()
{
StreamReader reader = new StreamReader("mr.txt");
string[,] tabString = new string[NB_COLONNE, NB_LIGNE];
string[] tabTemp;
int cptLigne = 0;
while (!reader.EndOfStream)
{
tabTemp = reader.ReadLine().Split(' ');
for (int index = 0; index < NB_COLONNE; index++)
{
tabString[index, cptLigne] = tabTemp[index];
}
cptLigne++;
}
return tabString;
}
cependant, si tu veut tjr faire un tableau 2d, tu peu utiliser cette methode pour lire ton fichier, ainsi que les 2 constante... La methode te retourne un tableau 2d de ton fichier texte(s'il a 4 colonne et moins que 15 ligne...)
sur ce, bonne chance
public const int NB_LIGNE = 15;
public const int NB_COLONNE = 4;
private string[,] lire()
{
StreamReader reader = new StreamReader("mr.txt");
string[,] tabString = new string[NB_COLONNE, NB_LIGNE];
string[] tabTemp;
int cptLigne = 0;
while (!reader.EndOfStream)
{
tabTemp = reader.ReadLine().Split(' ');
for (int index = 0; index < NB_COLONNE; index++)
{
tabString[index, cptLigne] = tabTemp[index];
}
cptLigne++;
}
return tabString;
}
halo_quebec
Messages postés
161
Date d'inscription
samedi 14 avril 2007
Statut
Membre
Dernière intervention
9 juin 2010
10
20 mars 2009 à 13:59
20 mars 2009 à 13:59
si tavait de la difficulte avec ton code, c pcq tu faire ReadLine et tu l'utilisais comme s'il lisait le fichier au complet, alors que sa lit seulement la premiere ligne...
Stargirlfr
Messages postés
1175
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
12 février 2017
356
20 mars 2009 à 17:10
20 mars 2009 à 17:10
Oui, merci, en fait, j'ai trouvé la solution pour mon tableau (sur un autre forum).
Mais comme tu dis, il faut que j'utilise une list à la place... Mais du coup, je ne sais plus comment faire.
Voilà mon code, mais j'ai un problème "l'index se trouve en dehors des limites du tableau".
Sachant que ma classe Employee a bien été créé et compte 4 arguments (4 string).
MERCI d'avance pour votre aide !!!
Mais comme tu dis, il faut que j'utilise une list à la place... Mais du coup, je ne sais plus comment faire.
Voilà mon code, mais j'ai un problème "l'index se trouve en dehors des limites du tableau".
Sachant que ma classe Employee a bien été créé et compte 4 arguments (4 string).
try { StreamReader reader = new StreamReader("C:\\employees.txt"); string ligne = reader.ReadLine(); List<Employee> listEmp = new List<Employee>(); while ((ligne = reader.ReadLine()) != null) { string[] Items = ligne.Split(new char[] { ' ' }); listEmp.Add(new Employee(Items[0].Trim(), Items[1].Trim(), Items[2].Trim(), Items[3].Trim())); } reader.Close(); // AFFICHAGE DE LA LISTE foreach (Employee emp in listEmp) { textBox1.AppendText(emp.ToString()); } } catch (Exception ex) { textBox1.AppendText("Exception: " + ex.Message + "\n"); } finally { //textBox1.AppendText("Executing finally block" + "\n"); }
MERCI d'avance pour votre aide !!!
halo_quebec
Messages postés
161
Date d'inscription
samedi 14 avril 2007
Statut
Membre
Dernière intervention
9 juin 2010
10
20 mars 2009 à 19:22
20 mars 2009 à 19:22
au lieu de sa:
string ligne = reader.ReadLine();
List<Employee> listEmp = new List<Employee>();
while ((ligne = reader.ReadLine()) != null)
{
string[] Items = ligne.Split(new char[] { ' ' });
listEmp.Add(new Employee(Items[0].Trim(), Items[1].Trim(), Items[2].Trim(), Items[3].Trim()));
}
essay plutot
string[] tabTemp;
while (!reader.EndOfStream)
{
tabTemp = reader.ReadLine().Split(' ');
listEmp.Add(new Employee(tabTemp[0], tabTemp[1], tabTemp[2], tabTemp[3]));
}
string ligne = reader.ReadLine();
List<Employee> listEmp = new List<Employee>();
while ((ligne = reader.ReadLine()) != null)
{
string[] Items = ligne.Split(new char[] { ' ' });
listEmp.Add(new Employee(Items[0].Trim(), Items[1].Trim(), Items[2].Trim(), Items[3].Trim()));
}
essay plutot
string[] tabTemp;
while (!reader.EndOfStream)
{
tabTemp = reader.ReadLine().Split(' ');
listEmp.Add(new Employee(tabTemp[0], tabTemp[1], tabTemp[2], tabTemp[3]));
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Stargirlfr
Messages postés
1175
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
12 février 2017
356
20 mars 2009 à 19:55
20 mars 2009 à 19:55
Bon, en fait, j'ai fait ça et ça fonctionne. Enfin, pas tout à fait car il me manque le 1er élément qui n'est pas affiché (il m'affiche tout sauf la 1ère ligne... Bizarre !)
Encore merci pour ton aide halo_quebec !!!
Encore merci pour ton aide halo_quebec !!!
while ((ligne = reader.ReadLine()) != null) { string[] Items = ligne.Split(' '); if (Items.Length == 4) listEmp.Add(new Employee(Items[0].Trim(), Items[1].Trim(), Items[2].Trim(), Items[3].Trim())); } reader.Close();
halo_quebec
Messages postés
161
Date d'inscription
samedi 14 avril 2007
Statut
Membre
Dernière intervention
9 juin 2010
10
20 mars 2009 à 21:10
20 mars 2009 à 21:10
De rien, sa fait plaisir,
mais je me demandait, pourquoi tu utilise trim()??
et pour ta premiere ligne, si tu as toujours cette ligne:
string ligne = reader.ReadLine();
en haut de ton while, alors c normal...
tu lis une ligne et tu en lit une autre dans ton while(ligne = reader.ReadLine() != null)
alors la premiere fois, tu reecrit par dessu ta premier ligne avant de l'utiliser...
mais je me demandait, pourquoi tu utilise trim()??
et pour ta premiere ligne, si tu as toujours cette ligne:
string ligne = reader.ReadLine();
en haut de ton while, alors c normal...
tu lis une ligne et tu en lit une autre dans ton while(ligne = reader.ReadLine() != null)
alors la premiere fois, tu reecrit par dessu ta premier ligne avant de l'utiliser...
Stargirlfr
Messages postés
1175
Date d'inscription
lundi 18 juin 2007
Statut
Membre
Dernière intervention
12 février 2017
356
20 mars 2009 à 22:45
20 mars 2009 à 22:45
Exact ! Merci !
Une autre question : comment comparer le 4ème élément de ma liste ?
Je m'explique : je souhaite afficher uniquement les employées où le 4ème élément est égal à 1.
Voilà ce que j'ai codé mais... il ne comprend pas le "&&" (je confonds avec le C ?)
EDIT : j'avais oublié des parenthèses ! Ca fonctionne maintenant !!
Une autre question : comment comparer le 4ème élément de ma liste ?
Je m'explique : je souhaite afficher uniquement les employées où le 4ème élément est égal à 1.
Voilà ce que j'ai codé mais... il ne comprend pas le "&&" (je confonds avec le C ?)
while ((ligne = reader.ReadLine()) != null) { string[] Items = ligne.Split(' '); if ((Items.Length == 4) && (Items[3].Trim() == "1")) { listEmp.Add(new Employee(Items[0].Trim(), Items[1].Trim(), Items[2].Trim(), Items[3].Trim())); } }
EDIT : j'avais oublié des parenthèses ! Ca fonctionne maintenant !!