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 :

Lire un fichier Texte.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 40
    Par défaut Lire un fichier Texte.
    Bonjour,

    Je rencontre un problème de programmation.

    Le but de mon programme est de lire deux fichiers textes. Supprimer les deux premières lignes de chaque fichiers, supprimer la dernière ligne de chaque fichier, d'effectuer un remplacement de mot et de réécrire le tout dans un autre fichier Texte pour une base de donnée.
    Je bloque dès le début du programme, lorsqu'il faut lire un fichier texte.
    Je ne me suis pas embêter, je suis allé directement sur le site de miicrosoft et voici mon code de départ:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    sub main()
    dim reader as string
    reader = my.computer.filesystem.readalltext("Mon dossier/fichier.txt")
    msgbox(reader)
    Alors, je veux bien que mon fichier fasse 50000 lignes, mais je n'ai absolument aucun résultat dans la msgbox. J'aurais voulu comprendre pourquoi.

    Pourtant, lorsque je change readlalltext par readline(), j'ai bien ma première ligne de départ, ce qui prouve que le chemin du fichier est correct.

    Auriez-vous une solution à mon problème?
    Peut être que de lire les lignes une par une serait-il meilleur?

    Merci.

    Cordialement,

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut
    dim reader() as string
    peut-être

  3. #3
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Non la fonction readalltext renvoi bien une string d'après le msdn.

    Concernant la fonction readline il est logique que tu n'ai que la première ligne de ton fichier vu qu'elle lit une ligne à la fois.

    Voici un tutoriel assez bien fait qui pourrait t'aider

    http://webman.developpez.com/article...et/file/vbnet/
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Tybbow Voir le message
    Alors, je veux bien que mon fichier fasse 50000 lignes, mais je n'ai absolument aucun résultat dans la msgbox.
    C'est bizarre, mais de toutes façons ça n'a pas vraiment de sens d'essayer d'afficher 50000 lignes dans une messagebox ! ça fait des centaines de fois la hauteur de l'écran... à mon avis c'est juste un problème d'affichage, pas un problème de lecture du fichier.

  5. #5
    Membre Expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Par défaut
    Après un test je confirme que la lecture d'un fichier contenant 4 ou 5 lignes est correcte. Peut-être une limitation au niveau de la MessageBox
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 505
    Par défaut
    oui c'est vrai moi j'utilise file.readlllines

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 40
    Par défaut
    Merci pour vos réponses.

    C'est bizarre, mais de toutes façons ça n'a pas vraiment de sens d'essayer d'afficher 50000 lignes dans une messagebox ! ça fait des centaines de fois la hauteur de l'écran... à mon avis c'est juste un problème d'affichage, pas un problème de lecture du fichier.
    On est d'accord.

    C'est juste qu'il y a 1728 modifications a effectué dans le fichier Texte. Au lieu d'avoir des "toto", j'aurais voulu des "tata" et je pensais que de passer directement par une lecteur en "readall", cela aurait permis au programme d'aller un peu plus vite.

    C'est certainement un problème au niveau du buffer qui ne sauvegarde pas suffisamment le fichier. Car lorsque je le réécris dans un autre fichier Texte, celui-ci me renvoie 0...

    Je vous dirais demain, la manière dont j'ai procédé, j'ai certainement une technique en tête.

  8. #8
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2012
    Messages : 40
    Par défaut
    Alors, voici mon second code, certes un peu bizarre,mais qui normalement devrait fonctionner.
    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
    26
    27
    28
    29
    30
    31
     
    Dim oFSO As Scripting.FileSystemObject
            Dim oFl As Scripting.File
            Dim oflc As Scripting.File
            Dim oTxt As Scripting.TextStream
            Console.WriteLine("         By Tybbow, Version 1.0")
            Console.WriteLine("")
            Console.WriteLine("")
            Console.WriteLine("")
            Console.WriteLine("Démarrage du programme")
            Console.WriteLine("Mise en place du système de fusion")
            oFSO = New Scripting.FileSystemObject
    oflc = oFSO.CreateTextFile("/QUALITE.xml")
            Dim oTxtr = oFSO.GetFile("/QUALITE.xml")
            oTxt = oTxtr.OpenAsTextStream(Scripting.IOMode.ForWriting)
            oTxt.WriteLine("<?xml version=" & Chr(34) & "1.0" & Chr(34) & "standalone=" & Chr(34) & "yes" & Chr(34) & "?>")
            oTxt.WriteLine("<TRANSPORTER>")
            oFl = oFSO.GetFile("fichier/ABONNES.txt")
            oTxt = oFl.OpenAsTextStream(Scripting.IOMode.ForReading)
            oTxt.SkipLine()
            oTxt.SkipLine()
            With oTxt
                While Not .AtEndOfStream
                    MsgBox(oTxt)
                    Dim otxts As String = oTxt.ReadAll
                    If InStr(1, otxts, "ITEM", 1) <> 0 Then
                        Replace(otxts, "ITEM", "ITEM24")
                        System.IO.File.AppendAllText("/QUALITE.xml", otxts)
                    End If
                End While
            End With
    Je ne l'ai pas terminé, vu que j'ai une jolie erreur qui me dit que cette interface n'est pas prise en charge sur l'object, scripting.file.
    Com_object, 0x80004002.

    Quelqu'un aurait-il une idée? XD

  9. #9
    Membre actif
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Janvier 2013
    Messages : 57
    Par défaut !!!!!
    Peut-être ce code...
    Il faut deux TextBox : textF1 et textF2
    Il faut un bouton "Start"


    Pour ouvrir:

    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
     
    Private Sub Start_Click() Handles Start.Click
    Dim ttt as Variant
    TextF1.Multiline=True
    TextF2.Multiline=True
     
    Try
    FileOpen(1,c:\doc1.txt,OpenMode.input)
    While not EOF(1)
    tout = LineImput(1)
    TextF1.Text = TextF1.Text + ttt + Chr(13) + Chr(10)
    End While
    Finally
    FileClose(1)
    End Try
     
    Try
    FileOpen(1,c:\doc2.txt,OpenMode.input)
    While not EOF(1)
    tout = LineImput(1)
    TextF2.Text = TextF2.Text + ttt + Chr(13) + Chr(10)
    End While
    Finally
    FileClose(1)
    End Try
    Ici on prend en compte que le chemin des fichiers sont "c:\doc1.txt" et "c:\doc2.txt"
    Ainci le contenu de tes fichiers seront dans les contrôles textbox.

    ...

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/12/2005, 15h57
  2. [Applet] lire un fichier texte
    Par lebesnec dans le forum Applets
    Réponses: 2
    Dernier message: 07/07/2005, 10h09
  3. Réponses: 1
    Dernier message: 24/11/2004, 16h54
  4. [Fichier] Lire un fichier texte long
    Par _Eric_ dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 18/08/2004, 15h22
  5. Réponses: 2
    Dernier message: 26/05/2004, 17h53

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