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

VB.NET Discussion :

Lecture d'une ressource texte


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 52
    Points : 48
    Points
    48
    Par défaut Lecture d'une ressource texte
    Bonjour,

    j'ai un fichier dictionnaire.txt dans les ressources de mon application windows form . Je souhaite le parcourir ligne par ligne pour extraire son contenu dans un tableau. Seulement, j'ai une erreur sur le chemin donné au StreamReader :
    Caractères non conformes dans le chemin d'accès.
    Lorsque je passe la souris sur ma ressource dans le code, j'y vois bien le contenu et il n'y a aucun caractère spécial ni même accentué sur le nom complet du chemin...

    Voici mon code :

    Code : 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
     
    'Liste fichiers txt
        Public s_FileDictionnaire As String = My.Resources.Dictionnaire
    '...
     
    Dim StrReader As StreamReader
            Dim s_Ligne As String
     
            If Not File.Exists(s_FileDictionnaire) Then  ' Lorsque j'ai la souris sur le string du fichier, j'ai bien le contenu du fichier qui s'affiche...
                'Le fichier n'existe pas. On informe de l'erreur
                frmAccueil.lblInfo.Text = "Erreur : Chargement des mots impossible, veuillez vérifier le fichier Dictionnaire.txt"
            End If
            'Ouverture du fichier et Création d'un tableau de mots
     
            StrReader = New StreamReader(s_FileDictionnaire) ' L'exception est detectée a cette ligne.
            MsgBox("Debut du fichier")
            s_Ligne = StrReader.ReadLine()
            While Not s_Ligne Is Nothing
                MsgBox(s_Ligne)
                s_Ligne = StrReader.ReadLine()
            End While
            MsgBox("Fin du fichier")
     
            'Fermeture streamreader
            If Not IsNothing(StrReader) Then StrReader.Close()
    Il y a quelque chose qui m'échappe! Peut être que je dois utiliser une autre méthode pour parcourir un fichier txt qui est dans les ressources?!

    Merci pour vos réponses futures.
    Kikouyou 1080

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    un fichier texte en ressource se transforme en string avec le contenu du fichier dans le string (ce n'est pas un chemin)

    d'ailleurs tu aurais eut la bonne idée de regarder en debug ce qui se passe tu aurais vu le contenu du string !

    après avec un split sur environment.newline tu auras les lignes

    NB:
    un fichier en ressource se transforme en tableau d'octets bytes()
    sauf quelques types de fichier txt=>string jpg(et autres)=>system.Drawing.image etc...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 52
    Points : 48
    Points
    48
    Par défaut
    Ah d'accord! Justement, je m'étonnais de voir le contenu de fichier! Je comprends mieux du coup! Merci bien pour tes précisions!

    Bonne continuation!
    Kikouyou 1080

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 52
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    A présent, j'ai bel et bien réussi a récupérer chaque ligne de mon fichier dans un tableau, seulement, je dois diviser ces lignes en 2 pour les introduire dans un tableau de structure, je suppose qu'on peut le faire en une seule fois, ce que je n'arrive pas a faire, et en deux fois c'est lourd!

    En claire, j'ai dans le fichier des enregistrements du type :

    0;BANANE
    0;AVION
    1;BEBE

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public Structure BaseMot
            Public b_Original As Boolean
            Public s_Mot As String
    End Structure
    Public BM_ListeMot() As BaseMot
    Et je voudrais récuperer le tout comme suit :
    BM_ListeMot(0). b_Original = 0
    BM_ListeMot(0).s_Mot = BANANE

    BM_ListeMot(1). b_Original = 0
    BM_ListeMot(1).s_Mot = AVION

    BM_ListeMot(2). b_Original = 1
    BM_ListeMot(2).s_Mot = BEBE

    Et ce en une seule fois. Sachant que mon fichier est une ressource et donc un string de la forme : "0;BANANE 0;AVION 1;BEBE"

    Merci pour votre aide!
    Kikouyou 1080

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2010
    Messages : 52
    Points : 48
    Points
    48
    Par défaut
    La solution que j'ai trouvée est extrêmement lente!
    J'aurais besoin de conseils avisés pour accélérer les processus!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim i_IndiceMot As Integer = 0
            Do
                ReDim Preserve BM_Dictionnaire(i_IndiceMot)
                BM_Dictionnaire(i_IndiceMot).b_Original = CBool((s_FileDictionnaire.Split(Environment.NewLine)(i_IndiceMot)).Split(";")(0))
                BM_Dictionnaire(i_IndiceMot).s_Mot = (s_FileDictionnaire.Split(Environment.NewLine)(i_IndiceMot)).Split(";")(1)
                i_IndiceMot += 1
            Loop Until i_IndiceMot = 'je sais pas comment arrêter lorsque tout le string est parcouru...
    Merci!

    Edit : Finalement, j'ai fini par trouver, c'est en deux temps mais au moins, c'est rapide!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    'Création du tableau de mots
            Dim s_TabTemp() As String = s_FileDictionnaire.Split(Environment.NewLine)
            ReDim BM_Dictionnaire(UBound(s_TabTemp))
            For i = 0 To UBound(s_TabTemp)
                With BM_Dictionnaire(i)
                    .b_Original = CBool(s_TabTemp(i).Split(";")(0))
                    .s_Mot = s_TabTemp(i).Split(";")(1)
                End With
            Next

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/02/2010, 11h51
  2. SQLite error near à la lecture d'une donnée texte
    Par ernie74 dans le forum SQLite
    Réponses: 4
    Dernier message: 04/01/2009, 06h13
  3. [Lazarus] Lire une ressource texte
    Par koolkris dans le forum Lazarus
    Réponses: 4
    Dernier message: 21/10/2007, 12h52
  4. Réponses: 2
    Dernier message: 24/01/2006, 12h34
  5. Lire un texte dans une ressource en dll
    Par fred78 dans le forum Langage
    Réponses: 2
    Dernier message: 03/11/2005, 18h08

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