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 :

probleme utilisation fonction split


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut probleme utilisation fonction split
    Bonjour,

    J´ai un probleme pour une ligne string dans un fichier texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Dim sr As StreamReader
    Dim lignetexte As String
    Dim liste() As String
     
    lignetexte= sr.ReadLine()
    liste = lignetexte.Split(" ")
    Si j´affiche lignetexte il me lit bien ce que je veux :
    ex : 0 1 2 3

    Mais si j affiche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MessageBox.Show(liste(0))
    je n´ai rien, et également pour liste(1) etc...

    Ce que je ne comprends pas c´est que si je teste avec une phrase simple le split ca marche...

    Il y a une manière spéciale de traiter les strings dans un fichier texte?

    Merci beaucoup de votre aide!

  2. #2
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    As-tu commencé par t'assurer de ce que les espaces "affichés" étaient bien des espaces ?
    Je commencerais par là ...
    un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox InStr(lignetexte, " ")
    te le permettrait ! si = 0 : pas de réel espace ...

  3. #3
    Membre habitué Avatar de MGD_Software
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2006
    Messages : 137
    Points : 139
    Points
    139
    Par défaut
    Essaie avec la fonction Split "de base" pour voir. La syntaxe est presque identique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste = Split(lignetexte, " ")
    Je ne pense pas que le problème soit lié à l'absence de séparateur espace, car dans ce cas la ligne entière reviendrait dans liste(0). D'autre part, si TOUS les index sont vides, c'est extrêmement curieux, car en cas d'absence de séparateur le tableau a pour indice max 0 et une référence à liste(1) devrait donner une erreur d'indice hors limites.

    Plusieurs vérifications à effectuer :
    1. Déjà, enlever les espaces non significatifs. Donc écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lignetexte =trim(sr.ReadLine())
    2: Vérifier la valeur de ubound(liste). Cela donnera le nombre d'éléments et donc de séparateurs (-1) dans la ligne de texte

    3 : vérifier qu'il n'y a pas 2000 espaces en tête de ligne (sait-on jamais, il faut s'en assurer). Donc petit bout de programme test dans la fenêtre debug:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for i=0 to ubound(liste): print i,liste(i):next
    Cela donnera une bonne idée de ce qu'il y a dans la liste.

    Résultats de tout ça ?

  4. #4
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Juin 2005
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    Encore désolée de répondre tard (j´ai 7h de décalage horaire)

    En effet, je n´avais pas pensé à enlever les espaces non significatifs!! (utilisation du trim)

    J ai aussi utilisé le ubound parce que les éléments sont un peu partout dans la ligne, le split ne me "coupe" pas comme je veux...

    En tout cas avec tout ca je m´en suis sortie!!

    Les valeurs que je souhaite dans ma liste sont comme ca :

    dans le texte : 0.1 0.1 0.1 1 2 3
    et apres le trim, et le ubound pour m´éclairer ca me donne :

    liste(0) = 0.1
    liste(7) = 0.1
    liste(14) = 0.1
    liste(19) = 1
    liste(24) = 2
    liste(30) = 3

    C´est pas génial comme ca, mais au moins j´ai quelque chose.
    Je mets résolu mais si vous avez des idées pour avoir les valeurs dans liste(0), liste(1)... je suis à votre écoute!


    Merci beaucoup!


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

Discussions similaires

  1. [XL-2010] Probleme sur Fonction Split
    Par Jeyjey1 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/07/2011, 14h48
  2. Comment utiliser la fonction split
    Par developpeur82 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 13/04/2010, 14h22
  3. Réponses: 2
    Dernier message: 15/05/2008, 22h26
  4. Leger probleme avec la fonction split
    Par gbouchat dans le forum ASP
    Réponses: 1
    Dernier message: 31/05/2007, 19h56
  5. probleme fonction split
    Par Alex35 dans le forum ASP
    Réponses: 1
    Dernier message: 27/11/2006, 17h58

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