Accueil > Forum > > > > Débutant - Manipulation de données d'un .txt
Débutant - Manipulation de données d'un .txt
dimanche 15 mars 2009 à 10:14:20 |
Débutant - Manipulation de données d'un .txt

strifemarseillais
|
Bonjour à tous, je suis débutant en C# et j'ai un problème pour manipuler les données provenant d'un txt. Mon fichier txt se compose de n lignes organisées de cette manière : 01/01/2000/09/00/00/4000 01/01/2000/09/00/01/4001 01/01/2000/09/00/02/4002 01/01/2000/09/00/03/4003 01/01/2000/09/00/04/4004 01/01/2000/09/00/05/4005 01/01/2000/09/00/06/4006 01/01/2000/09/00/07/4007 01/01/2000/09/00/08/4008 Je voudrais tout simplement splitter entre les "/" afin d'obtenir un nombre par case d'un tableau. Pour être plus clair je voudrais créer un tableau à deux dimensions comme suit: [0,0] -> 01 [1,0] -> 01 [0,1] -> 01 [1,1] -> 01 [0,2] -> 2000 [1,2] -> 2000 [0,3] -> 09 [1,3] -> 09 [0,4] -> 00 [1,4] -> 00 [0,5] -> 00 [1,5] -> 01 [0,6] -> 4000 [1,6] ->4001 ... J'ai utilisé un StreamReader, j'arrive à afficher mes lignes dans la console mais impossible d'organiser les données dans un tableau. Merci de votre aide.
|
|
dimanche 15 mars 2009 à 10:40:08 |
Re : Débutant - Manipulation de données d'un .txt

MasterShadows
|
Réponse acceptée !
Salut, je ferais un truc de ce style
string[] result = reader.ReadToEnd().Split(new char [] { '\n' }); int[,] tab = new int[result.Length, 6];
for(int i=0; i < result.Length; i++) { string[] r = result[i].Split(new char [] { '/' }); for(int j = 0; j < r.Length; j++) { tab[i, j] =int.Parse(r[j]); } }
Il y'a certainement des choses à améliorer mais l'idée est là...
|
|
dimanche 15 mars 2009 à 11:07:42 |
Re : Débutant - Manipulation de données d'un .txt

RougailSaucisse
|
Réponse acceptée !
j'allais proposer une solution très similaire. Pour voir que cela fonctionne j'affiche le tout dans une textbox, et j'entre ma string en dur pour le test mais bon.
Je considère ici que chaque ligne a exactement le mm formattage (pas de caractere en plus ou en moins), et qu'il n'y aucun espace à part le saut de ligne.
private void SplitLines()
{
string test = "01/02/09/200/10/20\n23/24/98/43/56/98";
string[] lines = test.Split();
string[,] str = new string[lines.Length, lines[0].Split('/').Length];
StringBuilder sb = new StringBuilder();
for (int i = 0; i < lines.Length; i++)
{
string[] number = lines[i].Split('/');
for (int j = 0; j < number.Length; j++)
{
str[i, j] = number[j];
sb.AppendLine(string.Format("str [{0},{1}] = {2}", i, j, str[i, j]));
}
sb.AppendLine(Environment.NewLine);
}
MessageBox.Show(sb.ToString());
}
sinon ben comme dit précédemment il serait plus judicieux de split('\n') au cas ou il y aurait d'autres types d'espacement (espace, tabulation ou autre..).
De plus je stocke ici sous forme de string, mais s'il faut les avoir en Int bien sur il faudra changer le type du tableau et procéder a une conversion comme fait dans le post précédent.
|
|
dimanche 15 mars 2009 à 11:55:46 |
Re : Débutant - Manipulation de données d'un .txt

strifemarseillais
|
Merci à vous deux pour vos solutions, quand je compile la tienne MasterShadows j'obtiens une erreur "System.FormatException has occured" je pensais que c'était du au nombre de colonnes du tableau qui est de 7 à la place de 6 je pense mais il me remet la même erreur.
Voila mon code.. enfin ton code lol
StreamReader fluxInfos = null; fluxInfos = new StreamReader("quote.txt");
string[] result = fluxInfos.ReadToEnd().Split(new char[] { '\n' }); int[,] tab = new int[result.Length, 7];
for (int i = 0; i < result.Length; i++) { string[] r = result[i].Split(new char[] { '/' }); for (int j = 0; j < r.Length; j++) { tab[i, j] = int.Parse(r[j]); } }
|
|
dimanche 15 mars 2009 à 13:00:05 |
Re : Débutant - Manipulation de données d'un .txt

RougailSaucisse
|
doit surement avoir une erreur sur une des chaines recupérées (caractere non numerique), ce qui fait que ta fonction parse te renvoie un formatexception. Verifie bien que ton fichier comporte bien uniquement des nombres.
Sinon en debuggant tu devrais vite identifier le probleme.
|
|
dimanche 15 mars 2009 à 13:07:15 |
Re : Débutant - Manipulation de données d'un .txt

MasterShadows
|
Bien vu pour le 7 à la place du 6 (j'ai lu le sujet trop vite, mais le principe est compris) Sinon mets un point d'arrêt sur string[] result et effectue un débogage pas par pas pour voir où ça ne colle plus...
L'erreur peut se trouver à int.Parse dans ce cas essaie ceci :
bool success = int.TryParse(r[j], out tab[i, j]);
si success vaut faux alors la coquille viendrait de la façon dont a été construit le fichier.
|
|
dimanche 15 mars 2009 à 13:14:00 |
Re : Débutant - Manipulation de données d'un .txt

strifemarseillais
|
Oui j'ai bien vérifié je n'ai que des nombres, j'ai ramené à 2 lignes pour être sur: 01/01/2000/09/00/00/4000 01/01/2000/09/00/01/4001 Avec le débogage il me surligne la ligne tab[i, j] = int.Parse(r[j]); en me signalant : "Input string was not in a correct format" Merci pour votre aide, je suis vraiment pas bon 
|
|
dimanche 15 mars 2009 à 13:20:14 |
Re : Débutant - Manipulation de données d'un .txt

RougailSaucisse
|
ben alors regarde la valeur de r[j] et tu sauras ce qui cloche.
|
|
dimanche 15 mars 2009 à 13:20:51 |
Re : Débutant - Manipulation de données d'un .txt

strifemarseillais
|
J'ai essayé avec ton astuce Master , j'ai mis un affichage à l'intérieur de la deuxième boucle, il m'affiche 14 True puis au quinzième un FALSE
|
|
dimanche 15 mars 2009 à 13:26:22 |
Re : Débutant - Manipulation de données d'un .txt

strifemarseillais
|
ça marche, c'était une coquille dans l'arborescence de mes fichiers. DSL
Merci beaucoup à tous les deux
|
|
Cette discussion est classée dans : données, tableau, txt, débutant, manipulation
Répondre à ce message
Sujets en rapport avec ce message
Enregistrement de données d'un tableau en .txt [ par manuweb_21 ]
J'aimerais enregistrer automatiquement les valeurs contenues dans un fichier texte (précédemment exportée de excel:-> donc organisées comme dans un ta
Lecture d'un fichier txt [ par Cybersnap ]
Bonjour, j'aimerais pourvoir sauvegarder les options de mon jeux de poker dans un fichier txt. J'arrive à le crée mais je ne sais pas comment je pourr
débutant en c# [ par defff ]
salut,je suis débutant en Csharp, et g un peu de mal a comprendre tous le syteme de connection au base de données. J'essaye de faire une application r
débutant : 2 questions sur les données [ par trdev ]
Bonjour je débute en csharp sous VS2005.J'ai crée un formulaire et fait un dragdrop d'une table de ma source de données.je n'arrive pas à faire 2 chos
Extraction de données d'une table SQL à un tableau [ par neo557 ]
Bonjour,mon problème en fera sourrir plus d'un j'en suis concsient, mais je n'arrive pas à trouver la réponse... J'aimerais tout simplement extraire d
Recuper dans un tableau de double les données d'une base de données [ par beji62 ]
Voila je vous expose mon probleme :-je suis débutant en ASP.NETJe developpe en C# sous visual studio 2005-J'ai une base de donnée SQL-SERVER-je souhai
Decoupe le contenu d'un txt dans un tableau ! [ par MTKMTKMTK ]
Bonjour a tous , auriez vus un ptit code pour decouper un texte dans un txt , et chaque lettre du txt serai serai dans un tableaupar ex:contenu du txt
tableau de données [ par cococo84 ]
bonjour, je souhaiterais faire un tableau tout simple de données, je pense qu'il faut utiliser un datagrid cependant je n'arrive pas à créer des ligne
[débutant]cryptage des données [ par etoiledevie ]
Bonjour,je suis entrain de developper une application C# avec BD oracle 9i, je veux crypter un mot de passe puis le comparer avec ceux existant dans l
Pb débutant [ par Fo0Zie ]
Bonjour à tous,Voici mon problème : Je voudrais que l'utilisateur de mon programme, saississe 5 nombres à la suite, séparés par un espace. Ces 5 nombr
Livres en rapport
|
Derniers Blogs
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|