OVH Cloud OVH Cloud

Extraire des valeurs conteniues dans une chaine

7 réponses
Avatar
jyM
Salut au groupe,
En VB5, comment extraire simplement les nombres et chaines contenues
dans une ligne et séparés par un ou plusieurs espaces, ou virgule ?
(il s'agit de milliers de lignes comportant toutes un nombre différent
de données dans des fichiers ASCII, le slignes sont extraites
séquentiellement avec Line Input )
Exemple:
21 5 jojo 3.14 4555 32,6
J'aimerais obtenir par exemple
Tabl(5) = 4555
Tabl (7) = 6

J'ai bien écrit une fonction, mais c'est une usine à gaz et c'est
lent...
Merci

7 réponses

Avatar
LE TROLL
Bonjour,

C'est un fichier texte de type csv que tu as je présume...

Tu as UBound (vois ton aide), ça devait exister en vb5, mais il faut que
tu identifie le séparateur (point-virgule, virgule), dans ton cas il semble
que le point soit un séparateur décimal, et non de données...
Pour aller plus vite il fau le faire en variables, si tu passes par des
listes (c'est plus rapide que le texte), il faut la rendre invisible, elle
va plus vite à écrire les données...

Dim s() As String
split(texte_source, "recherche_séparateur", nb 1=textuel)
s = Split(TexteSource, vbCrLf [, nblignes, 1])
i = UBound(s)
indique le nombre de lignes trouvées 0 à x
s(x)
----
'tableau à plusieurs dimensions
dim t(2, 4, 8)
Ubound(t, 1) ' = 2
Ubound(t, 2) ' = 4
Ubound(t, 3) ' = 8

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"jyM" a écrit dans le message de news:

Salut au groupe,
En VB5, comment extraire simplement les nombres et chaines contenues dans
une ligne et séparés par un ou plusieurs espaces, ou virgule ?
(il s'agit de milliers de lignes comportant toutes un nombre différent de
données dans des fichiers ASCII, le slignes sont extraites
séquentiellement avec Line Input )
Exemple:
21 5 jojo 3.14 4555 32,6
J'aimerais obtenir par exemple
Tabl(5) = 4555
Tabl (7) = 6

J'ai bien écrit une fonction, mais c'est une usine à gaz et c'est lent...
Merci




Avatar
Driss HANIB
salut jyM

pour ma part, si tu connais le type de séparateurs différents qui te sont
renvoyés, je te proposerai de tous les convertir en un séparateur unique,
par exemple un espace
Pour cela utilise la fonction Replace en passant successivement tous tes
séparateurs

Exemple

NouvChaine = Replace (maChaine, ",", " ")
etc..
n'oublie de transformer aussi les espaces doubles en espaces simples...

Puis utilise la focntion Split du style

Dim Liste
Liste=split(NouvChaine,",")
Liste sera alors un tableau avec toutes tes valeurs..


Driss



"jyM" a écrit dans le message de
news:
Salut au groupe,
En VB5, comment extraire simplement les nombres et chaines contenues
dans une ligne et séparés par un ou plusieurs espaces, ou virgule ?
(il s'agit de milliers de lignes comportant toutes un nombre différent
de données dans des fichiers ASCII, le slignes sont extraites
séquentiellement avec Line Input )
Exemple:
21 5 jojo 3.14 4555 32,6
J'aimerais obtenir par exemple
Tabl(5) = 4555
Tabl (7) = 6

J'ai bien écrit une fonction, mais c'est une usine à gaz et c'est
lent...
Merci




Avatar
jyM
Il se trouve que Driss HANIB a formulé :
salut jyM

pour ma part, si tu connais le type de séparateurs différents qui te sont
renvoyés, je te proposerai de tous les convertir en un séparateur unique,
par exemple un espace
Pour cela utilise la fonction Replace en passant successivement tous tes
séparateurs

Exemple

NouvChaine = Replace (maChaine, ",", " ")
etc..
n'oublie de transformer aussi les espaces doubles en espaces simples...

Puis utilise la focntion Split du style

Dim Liste
Liste=split(NouvChaine,",")
Liste sera alors un tableau avec toutes tes valeurs..


Driss



"jyM" a écrit dans le message de
news:
Salut au groupe,
En VB5, comment extraire simplement les nombres et chaines contenues
dans une ligne et séparés par un ou plusieurs espaces, ou virgule ?
(il s'agit de milliers de lignes comportant toutes un nombre différent
de données dans des fichiers ASCII, le slignes sont extraites
séquentiellement avec Line Input )
Exemple:
21 5 jojo 3.14 4555 32,6
J'aimerais obtenir par exemple
Tabl(5) = 4555
Tabl (7) = 6

J'ai bien écrit une fonction, mais c'est une usine à gaz et c'est
lent...
Merci





Merci pour ta réponse, mais je n'ai pas "replace" en rayon dans VB5...3
Avatar
LE TROLL
Ben fais ce qu'on t'a dit, mets en tableau, puis en fichier, tu traiteras
après la mise en forme !

--
Merci beaucoup, au revoir et à bientôt :o)
------
Site de MES LOGICIELS
http://irolog.free.fr
Site éditeur de MES ROMANS édités
http://irolog.free.fr/romans
mon adresse EMail
http://irolog.free.fr/ecrire/index.htm
------------------------------------------------------------------------------------
"jyM" a écrit dans le message de news:

Il se trouve que Driss HANIB a formulé :
salut jyM

pour ma part, si tu connais le type de séparateurs différents qui te sont
renvoyés, je te proposerai de tous les convertir en un séparateur unique,
par exemple un espace
Pour cela utilise la fonction Replace en passant successivement tous tes
séparateurs

Exemple

NouvChaine = Replace (maChaine, ",", " ")
etc..
n'oublie de transformer aussi les espaces doubles en espaces simples...

Puis utilise la focntion Split du style

Dim Liste
Liste=split(NouvChaine,",")
Liste sera alors un tableau avec toutes tes valeurs..


Driss



"jyM" a écrit dans le message de
news:
Salut au groupe,
En VB5, comment extraire simplement les nombres et chaines contenues
dans une ligne et séparés par un ou plusieurs espaces, ou virgule ?
(il s'agit de milliers de lignes comportant toutes un nombre différent
de données dans des fichiers ASCII, le slignes sont extraites
séquentiellement avec Line Input )
Exemple:
21 5 jojo 3.14 4555 32,6
J'aimerais obtenir par exemple
Tabl(5) = 4555
Tabl (7) = 6

J'ai bien écrit une fonction, mais c'est une usine à gaz et c'est
lent...
Merci





Merci pour ta réponse, mais je n'ai pas "replace" en rayon dans VB5...3




Avatar
Driss HANIB
oui et il n'ya pas pas de fonction split en VB 5 non plus !!

je t'envoie directement par mail un module que j'avais trouvé sur le net et
qui me servait lorsque j'était sous VB5.
Il emule ces fonctions

Driss

"jyM" a écrit dans le message de
news:
Il se trouve que Driss HANIB a formulé :
> salut jyM
>
> pour ma part, si tu connais le type de séparateurs différents qui te


sont
> renvoyés, je te proposerai de tous les convertir en un séparateur


unique,
> par exemple un espace
> Pour cela utilise la fonction Replace en passant successivement tous tes
> séparateurs
>
> Exemple
>
> NouvChaine = Replace (maChaine, ",", " ")
> etc..
> n'oublie de transformer aussi les espaces doubles en espaces simples...
>
> Puis utilise la focntion Split du style
>
> Dim Liste
> Liste=split(NouvChaine,",")
> Liste sera alors un tableau avec toutes tes valeurs..
>
>
> Driss
>
>
>
> "jyM" a écrit dans le message de
> news:
>> Salut au groupe,
>> En VB5, comment extraire simplement les nombres et chaines contenues
>> dans une ligne et séparés par un ou plusieurs espaces, ou virgule ?
>> (il s'agit de milliers de lignes comportant toutes un nombre différent
>> de données dans des fichiers ASCII, le slignes sont extraites
>> séquentiellement avec Line Input )
>> Exemple:
>> 21 5 jojo 3.14 4555 32,6
>> J'aimerais obtenir par exemple
>> Tabl(5) = 4555
>> Tabl (7) = 6
>>
>> J'ai bien écrit une fonction, mais c'est une usine à gaz et c'est
>> lent...
>> Merci

Merci pour ta réponse, mais je n'ai pas "replace" en rayon dans VB5...3




Avatar
jyM
Et non, pas de "replace" ni de "split"...
Mon mail est

Merci

Driss HANIB avait soumis l'idée :
oui et il n'ya pas pas de fonction split en VB 5 non plus !!

je t'envoie directement par mail un module que j'avais trouvé sur le net et
qui me servait lorsque j'était sous VB5.
Il emule ces fonctions

Driss

"jyM" a écrit dans le message de
news:
Il se trouve que Driss HANIB a formulé :
salut jyM

pour ma part, si tu connais le type de séparateurs différents qui te sont
renvoyés, je te proposerai de tous les convertir en un séparateur unique,
par exemple un espace
Pour cela utilise la fonction Replace en passant successivement tous tes
séparateurs

Exemple

NouvChaine = Replace (maChaine, ",", " ")
etc..
n'oublie de transformer aussi les espaces doubles en espaces simples...

Puis utilise la focntion Split du style

Dim Liste
Liste=split(NouvChaine,",")
Liste sera alors un tableau avec toutes tes valeurs..


Driss



"jyM" a écrit dans le message de
news:
Salut au groupe,
En VB5, comment extraire simplement les nombres et chaines contenues
dans une ligne et séparés par un ou plusieurs espaces, ou virgule ?
(il s'agit de milliers de lignes comportant toutes un nombre différent
de données dans des fichiers ASCII, le slignes sont extraites
séquentiellement avec Line Input )
Exemple:
21 5 jojo 3.14 4555 32,6
J'aimerais obtenir par exemple
Tabl(5) = 4555
Tabl (7) = 6

J'ai bien écrit une fonction, mais c'est une usine à gaz et c'est
lent...
Merci





Merci pour ta réponse, mais je n'ai pas "replace" en rayon dans VB5...3




Avatar
Driss HANIB
parti....


"jyM" a écrit dans le message de
news:
Et non, pas de "replace" ni de "split"...
Mon mail est

Merci

Driss HANIB avait soumis l'idée :
> oui et il n'ya pas pas de fonction split en VB 5 non plus !!
>
> je t'envoie directement par mail un module que j'avais trouvé sur le net


et
> qui me servait lorsque j'était sous VB5.
> Il emule ces fonctions
>
> Driss
>
> "jyM" a écrit dans le message de
> news:
>> Il se trouve que Driss HANIB a formulé :
>>> salut jyM
>>>
>>> pour ma part, si tu connais le type de séparateurs différents qui te


sont
>>> renvoyés, je te proposerai de tous les convertir en un séparateur


unique,
>>> par exemple un espace
>>> Pour cela utilise la fonction Replace en passant successivement tous


tes
>>> séparateurs
>>>
>>> Exemple
>>>
>>> NouvChaine = Replace (maChaine, ",", " ")
>>> etc..
>>> n'oublie de transformer aussi les espaces doubles en espaces


simples...
>>>
>>> Puis utilise la focntion Split du style
>>>
>>> Dim Liste
>>> Liste=split(NouvChaine,",")
>>> Liste sera alors un tableau avec toutes tes valeurs..
>>>
>>>
>>> Driss
>>>
>>>
>>>
>>> "jyM" a écrit dans le message de
>>> news:
>>>> Salut au groupe,
>>>> En VB5, comment extraire simplement les nombres et chaines contenues
>>>> dans une ligne et séparés par un ou plusieurs espaces, ou virgule ?
>>>> (il s'agit de milliers de lignes comportant toutes un nombre


différent
>>>> de données dans des fichiers ASCII, le slignes sont extraites
>>>> séquentiellement avec Line Input )
>>>> Exemple:
>>>> 21 5 jojo 3.14 4555 32,6
>>>> J'aimerais obtenir par exemple
>>>> Tabl(5) = 4555
>>>> Tabl (7) = 6
>>>>
>>>> J'ai bien écrit une fonction, mais c'est une usine à gaz et c'est
>>>> lent...
>>>> Merci
>>
>> Merci pour ta réponse, mais je n'ai pas "replace" en rayon dans VB5...3