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 6 et antérieur Discussion :

lecture dans un fichier txt d'une chaîne de caractères avec chiffres et lettres


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Août 2008
    Messages : 19
    Points : 18
    Points
    18
    Par défaut lecture dans un fichier txt d'une chaîne de caractères avec chiffres et lettres
    Bonjour,

    j'ai un fichier texte avec principalement des chiffres, mais aussi parfois des lettres. Voici un exemple de ligne :
    4 10C 5 7 3 0 5

    Le problème, c'est que quand VB lit ce fichier, il ne lit pas les lettres. Il les ignore. Cela est vrai que les variables ni (voir mon code ci-dessous) soient des String ou des integer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim n1, n2, n3, n4, n5, n6, n7 As String
    ...
    Open (App.Path + "\poubelle.txt") For Input As #1
    Do While Not EOF(1)
      Input #1, n1, n2, n3, n4, n5, n6, n7
    Pouvez-vous donc m'indiquer comment faire pour lire une chaîne de caractères avec chiffres et lettres? J'ai du mal à croire que ce n'est pas possible.

    En prime, je vous pose la même question avec une association de chiffres et de caractères spéciaux tels que ', ^, *, ", #,... Il semble que les gillemets permettent de prendre tout un texte jusqu'au prochaines gillemets avec ses blancs, faisant habituellement office de séparateur. Précisément l'association de chiffres avec ' me serait utile pour lire des temps : 30'25''.

    Par avance, merci!

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 123
    Points : 117
    Points
    117
    Par défaut
    Pourquoi tu n'enregistres pas d'abord tes lignes dans un buffer avec le code ci-dessous, puis exploiter ces données afin d'avoir le résultat voulu.
    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
     
    Sub ReadFile(ByVal FileName As String)
       Dim i As Integer
       Dim T() As String ' je ne suis pas sûr de la déclaration d'un tableau (renseigne toi)
       Open FileName For Input As #1 'Ouvrir le fichier
       i = -1
       While Not EOF(1) 'parcourir le fichier jusqu'à la dernière ligne
          i = i + 1
          Line Input #1, T(i)  'chaque case du tableau va contenir une ligne de 
                                     'ton fichier
        Wend
       Close #1 'fermer le fichier
        **************
        Chaque case du tableau contient donc une ligne de ton fichier, 
        utilise les fonctions de traitement de chaines de caractères pour 
        découper selon tes besoins. 
        **************
    End Sub
    Exemple:
    File: ligne 1 = 14 U 3, ligne 2 = 14 G 5
    T(1)=14 U 3, T(2) = 14 G 5
    Fonctions de découpage de chaines: n1 = 14, n2= U, n3= 3

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Août 2008
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Effectivement, ça peut être une solution. Je n'y avais pas pensé.

    Il y a cependant peut-être un obstacle, c'est que mon fichier txt fera à terme des dizaines de milliers de lignes, voire des millions. Du moins, c'est ce qui est prévu. Je ne sais pas si je peux créer un tableau de string de 10 000 cases.

    En tout cas, pour mon second programme, ça peux être intéressant.

    Merci.

  4. #4
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 123
    Points : 117
    Points
    117
    Par défaut
    Pour lire un fichier d'un million de ligne, il faudra d'abord changer le type de l'index i sinon t'auras un overflow.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Dim i as Long  'le type long suffira je pense...(à vérifier)
    Je ne sais pas si je peux créer un tableau de string de 10 000 cases.
    Dans ce cas enregistre ta ligne dans une variable de type String (pas un tableau) puis effectue directement le traitement sur cette variable (appel de fonction qui fait le découpage de ta chaine et les sauvegarder quelque-part ) avant de passer à la lecture de la ligne suivante. De cette manière tu n'auras pas à déclarer le tableau T.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Août 2008
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Merci M E H D I, pour ton tuyau!

    J'ai un peu l'impression d'écraser une mouche avec un marteau, mais après tout, il n'y peut-être pas d'autre solution.
    Au moins, ça a le mérite d'être carré.

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

Discussions similaires

  1. [Toutes versions] Transmettre un fichier texte ou une chaîne de caractère à un site web
    Par User dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/06/2015, 11h27
  2. Lecture dans un fichier .txt
    Par benobab dans le forum C
    Réponses: 5
    Dernier message: 05/03/2014, 23h00
  3. [Débutant] Lecture dans un XML et remplacer une chaîne de caractère
    Par Aazareth dans le forum C#
    Réponses: 4
    Dernier message: 02/02/2012, 21h51
  4. lecture d'un fichier .txt d'une certaine forme
    Par Liun971 dans le forum MATLAB
    Réponses: 8
    Dernier message: 21/07/2009, 13h49
  5. Comment transformer les tables dans un fichier txt vers une BD comme Mysql
    Par badrdine.in dans le forum Développement de jobs
    Réponses: 5
    Dernier message: 20/03/2009, 12h58

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