OVH Cloud OVH Cloud

La virgule de la mort

5 réponses
Avatar
konga
Bonjour à tous.

J'ai créé un programme qui découpe un fichier texte en 6 fichiers
distinct selon un critère lu.
Mon programme n'est pas bien compliqué ; je ne fais que lire le
fichier ligne par ligne, puis je recopie l'intégralité de la ligne
dans un des fichiers en sortie.

Mon problème c'est que parfois, le symbole ',' (virgule) est contenu
dans mon fichier en entrée. Et le résultat final est stupéfiant,
toutes les informations qui sont après la virgule dans mon fichier en
entrée ne sont pas présente dans mes fichiers en sortie.

Mon fichier en entrée est déclaré de la façon suivante :
Open Chemin_Sortie For Input Access Read As #1
Avec la lecture définit par
Input #1, chaine_lue

Et mes fichiers en sortie sont ouvert comme suit
Open Dir1.Path & "\" & Format(Date, "yyyymmdd") & "-SC.txt" For Output
As #2
et l'écriture est réalisée par l'instruction
Print #2, chaine_lue

Merci de me dire comment prendre en compte les données au-dela de la
virgule.

5 réponses

Avatar
ng
Salut,

Essaye plutot Line Input.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Fred wrote:
Bonjour à tous.

J'ai créé un programme qui découpe un fichier texte en 6 fichiers
distinct selon un critère lu.
Mon programme n'est pas bien compliqué ; je ne fais que lire le
fichier ligne par ligne, puis je recopie l'intégralité de la ligne
dans un des fichiers en sortie.

Mon problème c'est que parfois, le symbole ',' (virgule) est contenu
dans mon fichier en entrée. Et le résultat final est stupéfiant,
toutes les informations qui sont après la virgule dans mon fichier en
entrée ne sont pas présente dans mes fichiers en sortie.

Mon fichier en entrée est déclaré de la façon suivante :
Open Chemin_Sortie For Input Access Read As #1
Avec la lecture définit par
Input #1, chaine_lue

Et mes fichiers en sortie sont ouvert comme suit
Open Dir1.Path & "" & Format(Date, "yyyymmdd") & "-SC.txt" For Output
As #2
et l'écriture est réalisée par l'instruction
Print #2, chaine_lue

Merci de me dire comment prendre en compte les données au-dela de la
virgule.


Avatar
Fred
Merci ng,

Ca marche tout de suite beaucoup mieux.
Juste une question, quelle est la différence entre Input et Line Input ?

"ng" a écrit :

Salut,

Essaye plutot Line Input.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Fred wrote:
> Bonjour à tous.
>
> J'ai créé un programme qui découpe un fichier texte en 6 fichiers
> distinct selon un critère lu.
> Mon programme n'est pas bien compliqué ; je ne fais que lire le
> fichier ligne par ligne, puis je recopie l'intégralité de la ligne
> dans un des fichiers en sortie.
>
> Mon problème c'est que parfois, le symbole ',' (virgule) est contenu
> dans mon fichier en entrée. Et le résultat final est stupéfiant,
> toutes les informations qui sont après la virgule dans mon fichier en
> entrée ne sont pas présente dans mes fichiers en sortie.
>
> Mon fichier en entrée est déclaré de la façon suivante :
> Open Chemin_Sortie For Input Access Read As #1
> Avec la lecture définit par
> Input #1, chaine_lue
>
> Et mes fichiers en sortie sont ouvert comme suit
> Open Dir1.Path & "" & Format(Date, "yyyymmdd") & "-SC.txt" For Output
> As #2
> et l'écriture est réalisée par l'instruction
> Print #2, chaine_lue
>
> Merci de me dire comment prendre en compte les données au-dela de la
> virgule.





Avatar
LE TROLL
Salut,

Heu, la différence, ces que parmi les 3 types de fichiers, je ne vois
pas "Input" !!!
-----------

"Fred" a écrit dans le message de news:

Merci ng,

Ca marche tout de suite beaucoup mieux.
Juste une question, quelle est la différence entre Input et Line Input ?

"ng" a écrit :

Salut,

Essaye plutot Line Input.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Fred wrote:
> Bonjour à tous.
>
> J'ai créé un programme qui découpe un fichier texte en 6 fichiers
> distinct selon un critère lu.
> Mon programme n'est pas bien compliqué ; je ne fais que lire le
> fichier ligne par ligne, puis je recopie l'intégralité de la ligne
> dans un des fichiers en sortie.
>
> Mon problème c'est que parfois, le symbole ',' (virgule) est contenu
> dans mon fichier en entrée. Et le résultat final est stupéfiant,
> toutes les informations qui sont après la virgule dans mon fichier en
> entrée ne sont pas présente dans mes fichiers en sortie.
>
> Mon fichier en entrée est déclaré de la façon suivante :
> Open Chemin_Sortie For Input Access Read As #1
> Avec la lecture définit par
> Input #1, chaine_lue
>
> Et mes fichiers en sortie sont ouvert comme suit
> Open Dir1.Path & "" & Format(Date, "yyyymmdd") & "-SC.txt" For Output
> As #2
> et l'écriture est réalisée par l'instruction
> Print #2, chaine_lue
>
> Merci de me dire comment prendre en compte les données au-dela de la
> virgule.







Avatar
ng
Salut,

Line Input utlise un CRLF comme délimiteur (donc retour à la ligtne doncil
predn une ligne à la fois) alors que Input prend la virgule comme
délimiteur.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Fred wrote:
Merci ng,

Ca marche tout de suite beaucoup mieux.
Juste une question, quelle est la différence entre Input et Line
Input ?

"ng" a écrit :

Salut,

Essaye plutot Line Input.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Fred wrote:
Bonjour à tous.

J'ai créé un programme qui découpe un fichier texte en 6 fichiers
distinct selon un critère lu.
Mon programme n'est pas bien compliqué ; je ne fais que lire le
fichier ligne par ligne, puis je recopie l'intégralité de la ligne
dans un des fichiers en sortie.

Mon problème c'est que parfois, le symbole ',' (virgule) est contenu
dans mon fichier en entrée. Et le résultat final est stupéfiant,
toutes les informations qui sont après la virgule dans mon fichier
en entrée ne sont pas présente dans mes fichiers en sortie.

Mon fichier en entrée est déclaré de la façon suivante :
Open Chemin_Sortie For Input Access Read As #1
Avec la lecture définit par
Input #1, chaine_lue

Et mes fichiers en sortie sont ouvert comme suit
Open Dir1.Path & "" & Format(Date, "yyyymmdd") & "-SC.txt" For
Output As #2
et l'écriture est réalisée par l'instruction
Print #2, chaine_lue

Merci de me dire comment prendre en compte les données au-dela de la
virgule.






Avatar
Laurent
Je rajoute:
, tabulation ou CRLF... bref les caractéres de déparation habituels qui font
que 3 instructions donnent plus de mal au développeur (et aux bugsss) d'une
seule...

Laurent

"ng" a écrit dans le message de news:
#
Salut,

Line Input utlise un CRLF comme délimiteur (donc retour à la ligtne doncil
predn une ligne à la fois) alors que Input prend la virgule comme
délimiteur.

--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/

Fred wrote:
> Merci ng,
>
> Ca marche tout de suite beaucoup mieux.
> Juste une question, quelle est la différence entre Input et Line
> Input ?
>
> "ng" a écrit :
>
>> Salut,
>>
>> Essaye plutot Line Input.
>>
>> --
>> Nicolas G.
>> FAQ VB : http://faq.vb.free.fr
>> API Guide : http://www.allapi.net
>> Google Groups : http://groups.google.fr/
>> MZ-Tools : http://www.mztools.com/
>>
>> Fred wrote:
>>> Bonjour à tous.
>>>
>>> J'ai créé un programme qui découpe un fichier texte en 6 fichiers
>>> distinct selon un critère lu.
>>> Mon programme n'est pas bien compliqué ; je ne fais que lire le
>>> fichier ligne par ligne, puis je recopie l'intégralité de la ligne
>>> dans un des fichiers en sortie.
>>>
>>> Mon problème c'est que parfois, le symbole ',' (virgule) est contenu
>>> dans mon fichier en entrée. Et le résultat final est stupéfiant,
>>> toutes les informations qui sont après la virgule dans mon fichier
>>> en entrée ne sont pas présente dans mes fichiers en sortie.
>>>
>>> Mon fichier en entrée est déclaré de la façon suivante :
>>> Open Chemin_Sortie For Input Access Read As #1
>>> Avec la lecture définit par
>>> Input #1, chaine_lue
>>>
>>> Et mes fichiers en sortie sont ouvert comme suit
>>> Open Dir1.Path & "" & Format(Date, "yyyymmdd") & "-SC.txt" For
>>> Output As #2
>>> et l'écriture est réalisée par l'instruction
>>> Print #2, chaine_lue
>>>
>>> Merci de me dire comment prendre en compte les données au-dela de la
>>> virgule.