Split sur x séparateur espace dans fichier texte

hannahmeyer Messages postés 5 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 26 octobre 2005 - 26 août 2003 à 15:22
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 - 26 août 2003 à 16:06
cette question à déjà été posée sur le forum mais je n'arrive pas à appliqué les solutions proposé:

Je cherche à spliter des lignes issu d'un fichier txt avec comme séparateur un espace.

Le problème, est que entre chaque champs de la ligne, ce n'est pas un mais x espaces qui sont utilisés pour la séparation. (varie toujours entre chaque ligne)

Donc quand je split , mon tableau contient des champs parfois vide !!!
>
> Comment éviter ce problème ??

>
> Est-ce possible et comment ??
>
> ex : le point signifie un espace dans l'exemple ci-dessous.
> Ligne 1 : OBJE...champ1............champ2..champ3
> Ligne 2 : OBJE.champ1.....champ2.........champ3
> Ligne 3 : OBJE..........champ1.champ2....champ3
>
> Résultat:
> tableau 1 : OBJE
> tableau 2 : .
> tableau 3 : .
> tableau 4 : champ1
> etc ...
>
alors que je souhaiterai
Résultat:
> tableau 1 : OBJE
> tableau 2 : champ1

> etc ...

> Merci d'avance pour votre aide.
> A+


Suivi de la discussion

angel

2 réponses

cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
26 août 2003 à 15:32
liquide
le pb effectivement c'est que tes espaces ne sont pas constants. Si c'est toi qui a fait la sauvegarde dans ton fichier, arrange toi pour qu'il n'y ai plus x espaces inconnu mais plutot un truc du genre "vbtab" entre 2, ou alors peut etre que quand tu sauvegardes ton fichier, tu mets en direct les valeurs et elle meme contiennent des espaces, ce qui implique que tu dois le enlever avant de sauvegarder par un "trim" puis par exemple un "vbtab", sinon pas de solution apparente a part une prog longue prog pour tout virer.
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
26 août 2003 à 16:06
C'est pas si compliqué que ca !!
Tu commence par remplacer tous les x espaces par 1 espace
    While InStr(s, "  ") <> 0
        s = Replace(s, "  ", " ")
    Wend

... et ensuite tu fais ton split() avec 1 espace en délimiteur !!

Christophe R.
0
Rejoignez-nous