Lire jusqu'à un espace ? [Résolu]

Signaler
Messages postés
17
Date d'inscription
lundi 26 avril 2010
Statut
Membre
Dernière intervention
10 mai 2010
-
Messages postés
17
Date d'inscription
lundi 26 avril 2010
Statut
Membre
Dernière intervention
10 mai 2010
-
Bonjour,
J'essaie de lire un fichier texte en utilisant la méthode FSO.
Le problème c'est qu'il y a certaines valeurs donc je ne connais pas la longueur, et j'aimerais trouver comment, à partir d'un endroit donné, je peux dire que je veux stocker dans ma variable le nombre de caractères qu'il y a avant le prochain espace.
Exemple de données que je dois lire :

d1=1.9885 d2=1.95 d3a=1988
d1=4.95 d2=7.4498 d3a=2000

Dans la variable V1 je veux stocker par exemple la valeur de d1, dans v2 la valeur de d2. (le nom du .txt est fichier on va dire)
D'après la 1ere ligne j'aurais envie de faire :

fichier.skip (3)
v1 = fichier.read (6)
fichier.skip (1)
v2 = fichier.read (3)

Le problème c'est que ça marche bien pour la 1ere ligne, mais c'est pas adapté pour la seconde !
Du coup j'avais pensé faire :
fichier.skip (3)
v1 = fichier.--->lire jusqu'au prochain espace
fichier.skip (1)
v2 = fichier.read ---> Lire jusqu'au prochain espace

Et ça marcherait alors dans tous les cas!

Est-ce qu'une telle fonction existe ?

Si non, comment puis-je résoudre mon problème ?

Merci d'avance :)
Je précise que je suis débutant^^

A bientôt

6 réponses

Messages postés
14771
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
5 mars 2021
151
Bonjour,

Avec VBA, préfère utiliser les méthodes intégrées :
Open NomFichier For Input as #FileNumber

Line Input #FileNumber,MaLigne

MesDonnees=split(Maligne," ")

' MesDonnees(0)'Contient la donnée avant le premier espace,
'et les items suivants ssuivent les reste

Close #FileNumber

Réfères-toi à l'aide pour plus d'info.

Mon site
Messages postés
215
Date d'inscription
mercredi 26 avril 2006
Statut
Membre
Dernière intervention
2 août 2012

salut
' MesDonnees(0)'Contient la donnée avant le premier espace,
'et les items suivants ssuivent les reste

et pour parcourir le reste:
dim i as integer
for i = 0 to ubound(MesDonnees)
'ici t'aura le reste 1 par 1 avec => MesDonnees(i)
next

Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Messages postés
17
Date d'inscription
lundi 26 avril 2010
Statut
Membre
Dernière intervention
10 mai 2010

Ok, merci pour vos réponses, je vais tester ça. Mais bon j'avais déjà pas mal avancé en FSO (parce que là ce n'est qu'une partie du fichier txt que je vous ai cité), ça m'embête un peu de changer de méthode ... N'y a-t'il aucune solution sans changer la méthode ?
Messages postés
17
Date d'inscription
lundi 26 avril 2010
Statut
Membre
Dernière intervention
10 mai 2010

De plus, le but est de remplir au fur et à mesure une base de donnée access, j'aimerais donc utiliser des variables de type string et non une solution de stockage telle qu'un tableau
Messages postés
215
Date d'inscription
mercredi 26 avril 2006
Statut
Membre
Dernière intervention
2 août 2012

salut
j'aimerais trouver comment, à partir d'un endroit donné, je peux dire que je veux stocker dans ma variable le nombre de caractères qu'il y a avant le prochain espace.

peut tu mieux expliquer ta question ?
si tu arrive à lire le texte tu bloque ou exactement ?

Quand on pose une question on est con 5 minutes,Quand on ne la pose pas on le reste toute sa vie (mon site)
Messages postés
17
Date d'inscription
lundi 26 avril 2010
Statut
Membre
Dernière intervention
10 mai 2010

Salut,
Finalement je n'ai plus ce problème, j'ai pu trouver la solution :)
Mais j'ai ai un nouveau qui me fait bien bloquer :

Si j'utilise des variables de stockage de type "double", le programme ne veut pas stocker les valeurs (il dit que c'est incompatible)
Pourtant les valeurs lues que je veux stockées sont bien des nombres !
Est-ce dû au séparateur de décimale ? c'est un point dans le fichier texte. Faut-il que ce soit une virgule ?
Et dans ce dernier cas comment puis-je m'en sortir ? Parce qu'après avec ces valeurs je dois faire des calculs numériques. Donc si ce sont des "string" ça ne va pas le faire ...

Merci :) (j'hésite à poster un nouveau sujet vu que le problème à changé ...)