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 :

Problème relatif à l'utilisation de séparateurs


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut Problème relatif à l'utilisation de séparateurs
    Bonjour,


    Je réalise actuellement un programme qui me permettrait de stocker des valeurs contenues dans un fichier texte vers un tableau de variables string.

    Il faudrait recopier dans des string les différentes données et permettre de les différenciers par l'intermédiaire de séparateurs.

    Le problème est le suivant, aucun séparateur ne peut être définis de façon précise pour séparer les chanmps dans mon fichier texte.

    J'ai donc opté pour la solution de séparer les éléments par l'intermédiaire d'un nombre de caractères pédéfinis.

    Je ne connais aucun moyen de réaliser cela.

    J'ai fait pas mal de recherchces sur internet mais je n'es rencontré aucune solution acceptable pour le moment.

    Merci de m'aider dans ma quête. ^^

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 97
    Par défaut
    Regarde si tu peux stocker ton fichier en XML, c'est encore ce qu'il y a de plus simple

    Sinon la fonction string.substring est ton amie.

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Par défaut
    +1 pour Kookiz

    au pire, si un retour à la ligne ou un simple ";" ne suffit pas, tu peux toujours créer un séparateur qui aura très peu de chance d'être retrouvé dans tes string genre <@$MonSeparateurDLaMortQuiTue69_69*¤!!!> ^^

  4. #4
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    Les deux réponses sous-entendent que tu es maître de la forme du document à découper. Est-ce bien le cas ?

    avec un peu plus d'infos sur le contenu de ton fichier, on pourra te donner un coup de main... avec plus de précision dans notre réponse

  5. #5
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    Merci pour vos réponses.

    Je ne peux pas stocker mon fichier en xml.

    En fait, je suis débutant en c# et j'ai du mal à l'utiliser pour l'instant.

    J'ai pour l'instant créé le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    List<string[]> list = null;
     
                using (StreamReader streamReader = new StreamReader(pathTest))
                {
     
                    list = new List<string[]>();
                    while (!streamReader.EndOfStream)
                    {
                        string[] line = streamReader.ReadLine().Split(' ');
                        list.Add(line);
                    }
                }
    En fait, ici, je vais simplement stocker les différentes données dans ma liste. Mais après, je bloque.

    Mon fichier texte est composé de données stockés sous la forme suivante :

    0041309691991010119910101MR RERER ZZZ dfs NUL

    Je voudrais, par exemple, stocker dans un string les 8 premiers caractères dans un autre les 3 suivants etc etc.

    Si vous avez des solutions à me proposer cela serait bien aimable à vous.

    Merci D'avance pour votre contribution.

  6. #6
    Membre émérite Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Par défaut
    Si tes champs sont de taille fixe, pas de problème : substring peut faire l'affaire, sinon...
    Avec des champs de taille variable il faut avoir un moyen de définir cette taille. Effectivement un séparateur pourrait être utile.
    J'ai fait il y a longtemp un bout de code pouvant régler ton problème, mais je ne m'en souviens plus et je ne le rettrouve pas... dsl

  7. #7
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    ok merci kheironn.

    Par contre si t'as 5 minutes est ce qu'il y a moyen que tu mettes vite fait un exemple d'opération avec substring. Par exemple, pour stocker les 3 premières valeurs de la chaine dans une variable string.

  8. #8
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    Oui j'ai déja été sur cette page mais c'est pas ce que je recherche.

  9. #9
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    string s = "abcdefgh";
    string s1 = s.Substring(0, 3);
    //s1 --> "abc"

  10. #10
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Par défaut
    SubString te permet d'utiliser des longueur fixes (ou variables si tu mets des variables comme argument)

    si tu veux les 3 premières string de cette chaine (avec comme séparateur un espace):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string ChaineBonjour = "bonjour je suis TheMacleod l'immortel"
    tu va déja séparer chaque sous-chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    string[] MesSousChaines = ChaineBonjour.Split(' ');
    MesSouChaines sera donc un tableau de 5 sous-chaines :
    MesSouChaines[0] => bonjour
    MesSouChaines[1] => je
    MesSouChaines[2] => suis
    MesSouChaines[3] => TheMacleod
    MesSouChaines[4] => l'immortel

    il te suffit après de boucler sur les trois premières :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for(int Cpt=0;Cpt<=2;Cpt++)
    {
    Console.WriteLine(MesSouChaines[Cpt]);
    }
    t'affichera dans la console DOS :
    à toi de traiter ces infos comme tu le veux.
    si tu veux connaitre le nombre de sous-chaines de MesSouChaines :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MesSouChaines.Length

  11. #11
    Membre averti
    Inscrit en
    Avril 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 10
    Par défaut
    Résolus.

    MErci à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec l'utilisation de LogMessage
    Par vanquish dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 17/11/2005, 10h18
  2. Problème avec l'utilisation d'un module
    Par goblin dans le forum Modules
    Réponses: 4
    Dernier message: 09/11/2005, 20h55
  3. Problème avec l'utilisation de librairies
    Par Aradesh dans le forum MFC
    Réponses: 3
    Dernier message: 01/08/2005, 15h00
  4. [debutant] problème avec type à utiliser
    Par mlequim dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 15/07/2005, 16h08
  5. Problème avec l'utilisation de la fonction clock
    Par Matgic95 dans le forum C++Builder
    Réponses: 13
    Dernier message: 09/05/2005, 19h27

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