IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[DEBUTANT]Comment parser un fichier texte en tableau de donnees ?


Sujet :

C#

  1. #1
    Battosaiii
    Invité(e)
    Par défaut [DEBUTANT]Comment parser un fichier texte en tableau de donnees ?
    Bonjour,

    J'aimerais parser un fichier.txt en un tableau avec 3 champ(date,string type de message,string message). Il y a 8 espaces ou 2 tabulations separant ces informations.
    Par exemple voici le fichier que j'aimerais parser conteant 2 rang et 3 colomnes(DateTime date,string type de message, string description.

    Comment puis je parser ce texte en un tableau ?


    10:41:28 Warning: String with lot of spaces file:C:/test/fdsfsdfsdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

    10:41:29 Warning: File has moved from BzID=1233&to=cp&Nav=0&S=0&L=1&ID=11002 to file:C:\blah\test\blablaf=1&BzID=1233&to=cp&Nav=0&LangID=1&s=0&ID=11002
    10:41:31 Errors: veryslonggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggString1ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut, soit tu peux utiliser la fonction split (avec tabulation comme séparateur)
    soit tu recupères la ligne dans un string et tu lis caractère par caractère et en fonction, tu balances celà dans la donnée qui correspond
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Avec une expression régulière, comme j'adore ça
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    using System;
    using System.Text.RegularExpressions;
     
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                string s =
    @"10:41:28 Warning: String with lot of spaces file:C:/test/fdsfsdfsdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd/sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
     
    10:41:29 Warning: File has moved from BzID=1233&to=cp&Nav=0&S=0&L=1&ID=11002 to file:C:\blah\test\blablaf=1&BzID=1233&to=cp&Nav=0&LangID=1&s=0&ID=11002
    10:41:31 Errors: veryslonggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggString1ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss";
     
                MatchCollection matches = Regex.Matches(s, @"^(?<timestamp>\d{2}:\d{2}:\d{2})\s+(?<type>[^:]+):\s+(?<msg>.*)$", RegexOptions.Multiline);
                Info[] infos = new Info[matches.Count];
                for (int i = 0; i < matches.Count; i++)
                {
                    infos[i] = new Info(matches[i].Groups["timestamp"].Value, matches[i].Groups["type"].Value, matches[i].Groups["msg"].Value);
                }
            }
        }
     
        public class Info
        {
            public TimeSpan TimeStamp { get; private set; }
            public string MessageType { get; private set; }
            public string Message { get; private set; }
     
            public Info(string timeStamp, string messageType, string message)
            {
                this.TimeStamp = TimeSpan.Parse(timeStamp);
                this.MessageType = messageType;
                this.Message = message;
            }
        }
    }
    Pas de questions techniques par MP

Discussions similaires

  1. [PHP 5.3] Comment Parser un fichier text ?
    Par geforce dans le forum Langage
    Réponses: 1
    Dernier message: 01/04/2010, 03h35
  2. Comment parser un fichier texte en batch ?
    Par arnaudperfect dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 20/11/2007, 09h07
  3. Réponses: 5
    Dernier message: 16/07/2005, 00h01
  4. Comment créer un fichier texte?
    Par Crazynoss dans le forum ASP
    Réponses: 2
    Dernier message: 08/05/2005, 19h53
  5. Comment écrire un fichier texte au format MS-DOS ?
    Par fredfred dans le forum Langage
    Réponses: 9
    Dernier message: 20/01/2005, 09h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo