Hello Tout le monde,
Voilà ma problématique: J'ouvre 2 fichiers txt, un en Input et deuxieme en
ajout APPEND.
Le 1er fichier est structuré en ligne je souhaite transformer en colonne
dans le fichier 2. Je m'explique parce que c'est compliqué:
Exemple:
Dans le fichier Input j'ai par ex:
Ingrid
28ans
Neerlandaise
Je souhaite transformer ces données en tableau dans le fichier 2 append :
Ingrid 28ans Neerlandaise
Donc mes questions sont les suivantes:
1- Comment faire pour que dans la meme boucle de passer d'une ligne à une
autre pour le fichier1 et de rester à la meme ligne pour le fichier 2.
2- c quoi le code qui permet de passer d'une colonne à une autre dans un
fichier texte.
Ce truc me rend folle.
Je vous serai reconnaissant si vous arrivez à m'aider.
Eh, je lui ai proposé de me l'envoyer son truc, je lui fait, lol... En fait, je ne trouve pas la question très claire quant à l'aspect des datas, elle y rajoute un truc à chaque question ou presque, au début y avait 3 champs (en ligne), maintenant il y aurait (de mémoire), une entête et un enpied en sus; et puis il faut des ";", ça ressemble à un fichier que l'on voudrait exploiter avec Excel ça... Sans omettre qu'un point-virgule ";" ça inhibe le saut de ligne, on va peut être se retrouver avec une seule ligne... Ça peut durer longtemps les rajouts... Ce que j'ai écrit ne risque pas de fonctionner, j'ai indiqué un principe, par exemple, quand je mets "LECTURE --->", ça veut dire qu'il faut employer les instructions de lecture... Ce que tu dis est symptomatique du problème, on a un fichier de datas qui varie en structure selon l'heure, on ne sait pas si elle sait manipuler les fichiers, ni les chaînes, ni les erreurs, ni les chemin, alors faire quelque chose avec rien de tangible est difficile, à moins de tout faire sois même pour elle, mais dans ce cas, la programmation personnelle c'est mieux par email... -------
"Gloops" a écrit dans le message de news: 42414216$0$11693$
Salut,
Essaie juste de mettre en oeuvre ce que tu disais, une lecture du fichier source pour une lecture du fichier cible, et regarde le résultat.
Salut,
Eh, je lui ai proposé de me l'envoyer son truc, je lui
fait, lol...
En fait, je ne trouve pas la question très claire quant à
l'aspect des datas, elle y rajoute un truc à chaque question
ou presque, au début y avait 3 champs (en ligne), maintenant
il y aurait (de mémoire), une entête et un enpied en sus; et
puis il faut des ";", ça ressemble à un fichier que l'on
voudrait exploiter avec Excel ça... Sans omettre qu'un
point-virgule ";" ça inhibe le saut de ligne, on va peut
être se retrouver avec une seule ligne... Ça peut durer
longtemps les rajouts...
Ce que j'ai écrit ne risque pas de fonctionner, j'ai indiqué
un principe, par exemple, quand je mets "LECTURE --->", ça
veut dire qu'il faut employer les instructions de lecture...
Ce que tu dis est symptomatique du problème, on a un fichier
de datas qui varie en structure selon l'heure, on ne sait
pas si elle sait manipuler les fichiers, ni les chaînes, ni
les erreurs, ni les chemin, alors faire quelque chose avec
rien de tangible est difficile, à moins de tout faire sois
même pour elle, mais dans ce cas, la programmation
personnelle c'est mieux par email...
-------
"Gloops" <gloops@niark.fr> a écrit dans le message de news:
42414216$0$11693$8fcfb975@news.wanadoo.fr...
Salut,
Essaie juste de mettre en oeuvre ce que tu disais, une
lecture du fichier source pour une lecture du fichier
cible, et regarde le résultat.
Eh, je lui ai proposé de me l'envoyer son truc, je lui fait, lol... En fait, je ne trouve pas la question très claire quant à l'aspect des datas, elle y rajoute un truc à chaque question ou presque, au début y avait 3 champs (en ligne), maintenant il y aurait (de mémoire), une entête et un enpied en sus; et puis il faut des ";", ça ressemble à un fichier que l'on voudrait exploiter avec Excel ça... Sans omettre qu'un point-virgule ";" ça inhibe le saut de ligne, on va peut être se retrouver avec une seule ligne... Ça peut durer longtemps les rajouts... Ce que j'ai écrit ne risque pas de fonctionner, j'ai indiqué un principe, par exemple, quand je mets "LECTURE --->", ça veut dire qu'il faut employer les instructions de lecture... Ce que tu dis est symptomatique du problème, on a un fichier de datas qui varie en structure selon l'heure, on ne sait pas si elle sait manipuler les fichiers, ni les chaînes, ni les erreurs, ni les chemin, alors faire quelque chose avec rien de tangible est difficile, à moins de tout faire sois même pour elle, mais dans ce cas, la programmation personnelle c'est mieux par email... -------
"Gloops" a écrit dans le message de news: 42414216$0$11693$
Salut,
Essaie juste de mettre en oeuvre ce que tu disais, une lecture du fichier source pour une lecture du fichier cible, et regarde le résultat.
LE TROLL
Oh, je n'ai pas spécialement regardé, où y a-t-il ignominie???
Oh, je n'ai pas spécialement regardé, où y a-t-il
ignominie???
Oh, je n'ai pas spécialement regardé, où y a-t-il ignominie???
jean-marc
"Gloops" wrote in message news:42414c55$0$823$
Salut,
Peut-être devrais-tu préciser que le passage à la personne suivante est marqué par une ligne qui commence par un A, et que les autres codes sont ignorés, les champs sont pris dans l'ordre de leur arrivée.
Ou bien c'était évident ?
Hello,
Pour le "A", c'est écrit dans les commentaires:
If (first_car >= "A") And (first_car <= "Z") Then ' a new valid field ' is it a "A" (first field) If first_car = "A" Then Ca précise en plus que de "A" à "Z" ce sont des champs valides.
Les autres ignorés, c'est aussi dans le commentaire: ... Else ' nothing to do, we just ignore the ligne End If
Le reste (les autres pris dans l'ordre d'arivée) se déduit, mais tu as raison, j'aurais pu le préciser en ajoutant ici: Else ' ok just add a field in the array ' ==>> ajout d'un commentaire ' les champs de "B" à "Z" sont pris dans l'odre de leur apparition dans le fichier source ' ils ne sont pas réordonnés, et la lettre "A" à "Z" n'est pas utilisée pour déduire la ' ==>> fin ajout commentaire ' signification du champ. nb_fields = nb_fields + 1 ' keep only from character position 3, to remove "A:", "Z:", fields(nb_fields) = Mid$(s, 3)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
"Gloops" <gloops@niark.fr> wrote in message
news:42414c55$0$823$8fcfb975@news.wanadoo.fr...
Salut,
Peut-être devrais-tu préciser que le passage à la personne suivante est
marqué par une ligne qui commence par un A, et que les autres codes sont
ignorés, les champs sont pris dans l'ordre de leur arrivée.
Ou bien c'était évident ?
Hello,
Pour le "A", c'est écrit dans les commentaires:
If (first_car >= "A") And (first_car <= "Z") Then
' a new valid field
' is it a "A" (first field)
If first_car = "A" Then
Ca précise en plus que de "A" à "Z" ce sont des champs valides.
Les autres ignorés, c'est aussi dans le commentaire:
...
Else
' nothing to do, we just ignore the ligne
End If
Le reste (les autres pris dans l'ordre d'arivée) se déduit, mais tu as
raison,
j'aurais pu le préciser en ajoutant ici:
Else
' ok just add a field in the array
' ==>> ajout d'un commentaire
' les champs de "B" à "Z" sont pris dans l'odre de leur apparition dans
le fichier source
' ils ne sont pas réordonnés, et la lettre "A" à "Z" n'est pas utilisée
pour déduire la
' ==>> fin ajout commentaire
' signification du champ.
nb_fields = nb_fields + 1
' keep only from character position 3, to remove "A:", "Z:",
fields(nb_fields) = Mid$(s, 3)
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Peut-être devrais-tu préciser que le passage à la personne suivante est marqué par une ligne qui commence par un A, et que les autres codes sont ignorés, les champs sont pris dans l'ordre de leur arrivée.
Ou bien c'était évident ?
Hello,
Pour le "A", c'est écrit dans les commentaires:
If (first_car >= "A") And (first_car <= "Z") Then ' a new valid field ' is it a "A" (first field) If first_car = "A" Then Ca précise en plus que de "A" à "Z" ce sont des champs valides.
Les autres ignorés, c'est aussi dans le commentaire: ... Else ' nothing to do, we just ignore the ligne End If
Le reste (les autres pris dans l'ordre d'arivée) se déduit, mais tu as raison, j'aurais pu le préciser en ajoutant ici: Else ' ok just add a field in the array ' ==>> ajout d'un commentaire ' les champs de "B" à "Z" sont pris dans l'odre de leur apparition dans le fichier source ' ils ne sont pas réordonnés, et la lettre "A" à "Z" n'est pas utilisée pour déduire la ' ==>> fin ajout commentaire ' signification du champ. nb_fields = nb_fields + 1 ' keep only from character position 3, to remove "A:", "Z:", fields(nb_fields) = Mid$(s, 3)
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
Ingrid
Hi, oufff c'est moi qui ai lancé tout ce debat... D'abord je remercie tout le monde et sans exception pour les reponses données ( Gloops, le troll, pascal b. et jean-marc...).
Jean-marc, effectivement ton code fonctionne mais il y a un probleme. Je vais essayer d'être claire et de bien m'exprimer. D'abord partons du code de jean-marc: Tu as pris comme hypthèse que dans le fichier il y a une suite logique de A à Z. J'ai oublié de préciser que c'etait pas le cas. je vais vous donner l'exercice qui va me rendre folle à la néerlandaise et si j'arrive pas à le resoudre je vais prendre le thalys pour passer ma journée à fumer dans un cofee shop à Amsterdam...lol.... voilà: J'ai un fichier Entrée structurée en ligne de la façon suivante: xxx4528xxxxxx :A:Ingrid :B:28Ans :R:Debutante :D:01/01/2005 Dîplome :D:01/02/2005 Demenagement :A:Jacques :B:40Ans :R:Expert :D:01/02/2005 Dîplome :D:01/03/2005 Demenagement xxxxx352xxxxxxxxxxxxxx Ce fichier je veux le transformer en fichier sortie de la façon suivante: Ingrid;28ans;Debutante;01/01/200 Dîplome Ingrrid;28ans;Debutante;01/02/2005 Demenagement Jacques;40Ans;Expert;01/02/2005 Dîplome Jacques;40Ans;Expert;01/03/2005 Demenagement
Donc on peut conclure le suivant: 1- Il s'agit pas d'une suite logique de A à Z 2- dans le fichier Entrée, à mon avis la clé c'est le D parceque qd il y a un second D pour la meme personne (comme dans l'exemple), il saute une ligne il reprend les infos A, B et R et il rajoute une nouvelle ligne.
Notez chers amis que j'arrive à le faire sous excel car je peux bouger entre ligne et les cells plus facilement mais mon prof qui me torture veut qu'on le fasse sous excel....
Est ce que vous pouvez m'aider ?
Kisses à tout le monde
Ingrid
"jean-marc" wrote:
"Ingrid" wrote in message news: > gloops, > ça marche mais ça répond pas completement à mon probleme et ceci pour la > raison suivante: > 1-Parce que dans mon exemple on a fixé 3 lignes comme hypothèse et s'il y en > avait x lignes, on fait comment? > je te donne un exercice avec ton code un peu retouché par des conditions : > voilà j'ai un fichier sortie dans lequel il y a les informations suivantes:
Hello,
voici une fonction qui résoud ton problème, complètement cette fois je pense: J'ai testé avec exactement le fichier que tu donnais, et le résultat produit est:
Ingrid;28ans;Dutch;Sympa;Amatrice en Informatique Gloops;32ans;Français;Specialiste en Informatique Jacques;50ans;German;Insuportable;Nul en Informatique
Les hyppothèses sont qu'un champ commence par "A" - "Z" Toutes les autres lignes sont ignorées On peut avoir autant de champs que l'on veut (MAX_FIELDS)
Private Sub TransformFile(inputFile As String, outputFile As String) Dim inp As Integer, outp As Integer Dim s As String Dim fields(MAX_FIELDS) As String Dim nb_fields As Integer Dim i As Integer Dim first_car As String
On Error GoTo err_TF
inp = FreeFile Open inputFile For Input As #inp outp = FreeFile Open outputFile For Output As #outp While Not EOF(inp) Line Input #inp, s first_car = Mid$(s, 1, 1) If (first_car >= "A") And (first_car <= "Z") Then ' a new valied field ' is it a "A" (first field) If first_car = "A" Then ' 2 cases here ' a complete record is ready to be read or it's the first one If nb_fields = 0 Then ' ok its a new record - just store it nb_fields = nb_fields + 1 ' keep only from character position 3, to remove "A:", "Z:", etc. fields(nb_fields) = Mid$(s, 3) Else ' whowhowho ! we got a complete record! ' let's write it For i = 1 To nb_fields Print #outp, fields(i); If i <> nb_fields Then Print #outp, ";"; End If Next i Print #outp, "" ' just to insert a Carriage Return/LineFeed ' Now restore field count nb_fields = 1 ' store the beginning of this new record fields(nb_fields) = Mid$(s, 3) End If Else ' ok just add a field in the array nb_fields = nb_fields + 1 ' keep only from character position 3, to remove "A:", "Z:", etc. fields(nb_fields) = Mid$(s, 3) End If Else ' nothing to do, we just ignore the ligne End If Wend ' end of file ' do we have somethiong to write ? If nb_fields > 0 Then ' ok, just write it For i = 1 To nb_fields Print #outp, fields(i); If i <> nb_fields Then Print #outp, ";"; End If Next i Print #outp, "" ' just to insert a Carriage Return/LineFeed End If ' That's it :-) Close #inp Close #outp end_TF: Exit Sub err_TF: MsgBox "error : " & Err.Description & " (" & Err.Number & ")" Resume end_TF End Sub
' ----------------- Sample call ------------------- Private Sub Command1_Click() Call TransformFile("D:JMDvpmt#VBng376data.txt", "D:JMDvpmt#VBng376dataOUT.txt") End Sub
Bonne programmation!
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
Hi,
oufff c'est moi qui ai lancé tout ce debat...
D'abord je remercie tout le monde et sans exception pour les reponses
données ( Gloops, le troll, pascal b. et jean-marc...).
Jean-marc, effectivement ton code fonctionne mais il y a un probleme. Je
vais essayer d'être claire et de bien m'exprimer. D'abord partons du code de
jean-marc:
Tu as pris comme hypthèse que dans le fichier il y a une suite logique de A
à Z. J'ai oublié de préciser que c'etait pas le cas. je vais vous donner
l'exercice qui va me rendre folle à la néerlandaise et si j'arrive pas à le
resoudre je vais prendre le thalys pour passer ma journée à fumer dans un
cofee shop à Amsterdam...lol....
voilà:
J'ai un fichier Entrée structurée en ligne de la façon suivante:
xxx4528xxxxxx
:A:Ingrid
:B:28Ans
:R:Debutante
:D:01/01/2005 Dîplome
:D:01/02/2005 Demenagement
:A:Jacques
:B:40Ans
:R:Expert
:D:01/02/2005 Dîplome
:D:01/03/2005 Demenagement
xxxxx352xxxxxxxxxxxxxx
Ce fichier je veux le transformer en fichier sortie de la façon suivante:
Ingrid;28ans;Debutante;01/01/200 Dîplome
Ingrrid;28ans;Debutante;01/02/2005 Demenagement
Jacques;40Ans;Expert;01/02/2005 Dîplome
Jacques;40Ans;Expert;01/03/2005 Demenagement
Donc on peut conclure le suivant:
1- Il s'agit pas d'une suite logique de A à Z
2- dans le fichier Entrée, à mon avis la clé c'est le D parceque qd il y a
un second D pour la meme personne (comme dans l'exemple), il saute une ligne
il reprend les infos A, B et R et il rajoute une nouvelle ligne.
Notez chers amis que j'arrive à le faire sous excel car je peux bouger entre
ligne et les cells plus facilement mais mon prof qui me torture veut qu'on le
fasse sous excel....
Est ce que vous pouvez m'aider ?
Kisses à tout le monde
Ingrid
ingridnlfr@hotmail.com
"jean-marc" wrote:
"Ingrid" <Ingrid@discussions.microsoft.com> wrote in message
news:EA1324FE-7D06-4335-98AC-CDFDE0F575D2@microsoft.com...
> gloops,
> ça marche mais ça répond pas completement à mon probleme et ceci pour la
> raison suivante:
> 1-Parce que dans mon exemple on a fixé 3 lignes comme hypothèse et s'il y
en
> avait x lignes, on fait comment?
> je te donne un exercice avec ton code un peu retouché par des conditions :
> voilà j'ai un fichier sortie dans lequel il y a les informations
suivantes:
Hello,
voici une fonction qui résoud ton problème, complètement cette fois je
pense:
J'ai testé avec exactement le fichier que tu donnais, et le résultat produit
est:
Ingrid;28ans;Dutch;Sympa;Amatrice en Informatique
Gloops;32ans;Français;Specialiste en Informatique
Jacques;50ans;German;Insuportable;Nul en Informatique
Les hyppothèses sont qu'un champ commence par "A" - "Z"
Toutes les autres lignes sont ignorées
On peut avoir autant de champs que l'on veut (MAX_FIELDS)
Private Sub TransformFile(inputFile As String, outputFile As String)
Dim inp As Integer, outp As Integer
Dim s As String
Dim fields(MAX_FIELDS) As String
Dim nb_fields As Integer
Dim i As Integer
Dim first_car As String
On Error GoTo err_TF
inp = FreeFile
Open inputFile For Input As #inp
outp = FreeFile
Open outputFile For Output As #outp
While Not EOF(inp)
Line Input #inp, s
first_car = Mid$(s, 1, 1)
If (first_car >= "A") And (first_car <= "Z") Then
' a new valied field
' is it a "A" (first field)
If first_car = "A" Then
' 2 cases here
' a complete record is ready to be read or it's the first
one
If nb_fields = 0 Then
' ok its a new record - just store it
nb_fields = nb_fields + 1
' keep only from character position 3, to remove "A:",
"Z:", etc.
fields(nb_fields) = Mid$(s, 3)
Else
' whowhowho ! we got a complete record!
' let's write it
For i = 1 To nb_fields
Print #outp, fields(i);
If i <> nb_fields Then
Print #outp, ";";
End If
Next i
Print #outp, "" ' just to insert a Carriage
Return/LineFeed
' Now restore field count
nb_fields = 1
' store the beginning of this new record
fields(nb_fields) = Mid$(s, 3)
End If
Else
' ok just add a field in the array
nb_fields = nb_fields + 1
' keep only from character position 3, to remove "A:", "Z:",
etc.
fields(nb_fields) = Mid$(s, 3)
End If
Else
' nothing to do, we just ignore the ligne
End If
Wend
' end of file
' do we have somethiong to write ?
If nb_fields > 0 Then
' ok, just write it
For i = 1 To nb_fields
Print #outp, fields(i);
If i <> nb_fields Then
Print #outp, ";";
End If
Next i
Print #outp, "" ' just to insert a Carriage Return/LineFeed
End If
' That's it :-)
Close #inp
Close #outp
end_TF:
Exit Sub
err_TF:
MsgBox "error : " & Err.Description & " (" & Err.Number & ")"
Resume end_TF
End Sub
' ----------------- Sample call -------------------
Private Sub Command1_Click()
Call TransformFile("D:JMDvpmt#VBng376data.txt",
"D:JMDvpmt#VBng376dataOUT.txt")
End Sub
Bonne programmation!
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Hi, oufff c'est moi qui ai lancé tout ce debat... D'abord je remercie tout le monde et sans exception pour les reponses données ( Gloops, le troll, pascal b. et jean-marc...).
Jean-marc, effectivement ton code fonctionne mais il y a un probleme. Je vais essayer d'être claire et de bien m'exprimer. D'abord partons du code de jean-marc: Tu as pris comme hypthèse que dans le fichier il y a une suite logique de A à Z. J'ai oublié de préciser que c'etait pas le cas. je vais vous donner l'exercice qui va me rendre folle à la néerlandaise et si j'arrive pas à le resoudre je vais prendre le thalys pour passer ma journée à fumer dans un cofee shop à Amsterdam...lol.... voilà: J'ai un fichier Entrée structurée en ligne de la façon suivante: xxx4528xxxxxx :A:Ingrid :B:28Ans :R:Debutante :D:01/01/2005 Dîplome :D:01/02/2005 Demenagement :A:Jacques :B:40Ans :R:Expert :D:01/02/2005 Dîplome :D:01/03/2005 Demenagement xxxxx352xxxxxxxxxxxxxx Ce fichier je veux le transformer en fichier sortie de la façon suivante: Ingrid;28ans;Debutante;01/01/200 Dîplome Ingrrid;28ans;Debutante;01/02/2005 Demenagement Jacques;40Ans;Expert;01/02/2005 Dîplome Jacques;40Ans;Expert;01/03/2005 Demenagement
Donc on peut conclure le suivant: 1- Il s'agit pas d'une suite logique de A à Z 2- dans le fichier Entrée, à mon avis la clé c'est le D parceque qd il y a un second D pour la meme personne (comme dans l'exemple), il saute une ligne il reprend les infos A, B et R et il rajoute une nouvelle ligne.
Notez chers amis que j'arrive à le faire sous excel car je peux bouger entre ligne et les cells plus facilement mais mon prof qui me torture veut qu'on le fasse sous excel....
Est ce que vous pouvez m'aider ?
Kisses à tout le monde
Ingrid
"jean-marc" wrote:
"Ingrid" wrote in message news: > gloops, > ça marche mais ça répond pas completement à mon probleme et ceci pour la > raison suivante: > 1-Parce que dans mon exemple on a fixé 3 lignes comme hypothèse et s'il y en > avait x lignes, on fait comment? > je te donne un exercice avec ton code un peu retouché par des conditions : > voilà j'ai un fichier sortie dans lequel il y a les informations suivantes:
Hello,
voici une fonction qui résoud ton problème, complètement cette fois je pense: J'ai testé avec exactement le fichier que tu donnais, et le résultat produit est:
Ingrid;28ans;Dutch;Sympa;Amatrice en Informatique Gloops;32ans;Français;Specialiste en Informatique Jacques;50ans;German;Insuportable;Nul en Informatique
Les hyppothèses sont qu'un champ commence par "A" - "Z" Toutes les autres lignes sont ignorées On peut avoir autant de champs que l'on veut (MAX_FIELDS)
Private Sub TransformFile(inputFile As String, outputFile As String) Dim inp As Integer, outp As Integer Dim s As String Dim fields(MAX_FIELDS) As String Dim nb_fields As Integer Dim i As Integer Dim first_car As String
On Error GoTo err_TF
inp = FreeFile Open inputFile For Input As #inp outp = FreeFile Open outputFile For Output As #outp While Not EOF(inp) Line Input #inp, s first_car = Mid$(s, 1, 1) If (first_car >= "A") And (first_car <= "Z") Then ' a new valied field ' is it a "A" (first field) If first_car = "A" Then ' 2 cases here ' a complete record is ready to be read or it's the first one If nb_fields = 0 Then ' ok its a new record - just store it nb_fields = nb_fields + 1 ' keep only from character position 3, to remove "A:", "Z:", etc. fields(nb_fields) = Mid$(s, 3) Else ' whowhowho ! we got a complete record! ' let's write it For i = 1 To nb_fields Print #outp, fields(i); If i <> nb_fields Then Print #outp, ";"; End If Next i Print #outp, "" ' just to insert a Carriage Return/LineFeed ' Now restore field count nb_fields = 1 ' store the beginning of this new record fields(nb_fields) = Mid$(s, 3) End If Else ' ok just add a field in the array nb_fields = nb_fields + 1 ' keep only from character position 3, to remove "A:", "Z:", etc. fields(nb_fields) = Mid$(s, 3) End If Else ' nothing to do, we just ignore the ligne End If Wend ' end of file ' do we have somethiong to write ? If nb_fields > 0 Then ' ok, just write it For i = 1 To nb_fields Print #outp, fields(i); If i <> nb_fields Then Print #outp, ";"; End If Next i Print #outp, "" ' just to insert a Carriage Return/LineFeed End If ' That's it :-) Close #inp Close #outp end_TF: Exit Sub err_TF: MsgBox "error : " & Err.Description & " (" & Err.Number & ")" Resume end_TF End Sub
' ----------------- Sample call ------------------- Private Sub Command1_Click() Call TransformFile("D:JMDvpmt#VBng376data.txt", "D:JMDvpmt#VBng376dataOUT.txt") End Sub
Bonne programmation!
-- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
jean-marc
"Pascal B." wrote in message news:
La bonne syntaxe est bien "While Not EOF(1)" de Gloops (ou "Until EOF(1)"
mais c'est un autre débat)
Hello,
pour en ajouter une couche, EOF(1) n'est *pas* la bonne syntaxe. La bonne syntaxe est:
Dim f As Integer f = FreeFile While Not EOF(f) . . .
Aisément traduisible par les "anti-Freefile" en :
Oui mais pourquoi programmer proprement quand on peut programmer comme un: [ ] Cochon [ ] Goret [ ] Porc [ ] Sagouin (cocher une ou plusieurs cases)
Mais c'est aussi un autre débat :o) -- Jean-marc "There are only 10 kind of people those who understand binary and those who don't."
"Pascal B." <Pascbr@hotmail_ANTISPASM_.com> wrote in message
news:e2opyT4LFHA.1144@TK2MSFTNGP09.phx.gbl...
La bonne syntaxe est bien "While Not EOF(1)" de Gloops (ou "Until EOF(1)"
mais c'est un autre débat)
Hello,
pour en ajouter une couche, EOF(1) n'est *pas* la bonne syntaxe.
La bonne syntaxe est:
Dim f As Integer
f = FreeFile
While Not EOF(f)
. . .
Aisément traduisible par les "anti-Freefile" en :
Oui mais pourquoi programmer proprement quand on peut programmer comme un:
[ ] Cochon
[ ] Goret
[ ] Porc
[ ] Sagouin
(cocher une ou plusieurs cases)
Mais c'est aussi un autre débat :o)
--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
Par ailleurs, pour reprendre ton code: "While Not EOF(1)"
C'est incompréhensible, on est pas en C avec des >trucs du genre "i++", tu pourrais écrire correctement, soit: While EOF(pointeur) <> true
Il faut apprendre aux programmeurs à utiliser les booléens donc proscrire if Var=True ou if varúlse
écrire simplement if var et if not var
Si Eof(1) n'est pas clair, on peut écrire
Public Function FinDuFichier(NuméroDuCanal) as Boolean FinDuFichier=Eof(NuméroDuCanal) end Function
L'utilisation devient
while Not FinDuFichier(N) Action de lecture du fichier lié au canal Numéro N wend
Gloops
Salut,
Tu vois, il me paraît effectivement important de commencer par être bien d'accord sur l'énoncé. Ensuite, ce qu'on envoie répond à la question posée.
Ensuite, c'est vrai que si la question posée évolue, il reste des évolutions. La fonction proposée par Jean-Marc s'approche beaucoup de la dernière demande, après on va voir cette histoire de première et dernière ligne.
Logiquement, en se mettant bien d'accord avant de proposer un programme, ça devrait limiter le nombre de versions.
Salut,
Tu vois, il me paraît effectivement important de commencer par être bien
d'accord sur l'énoncé. Ensuite, ce qu'on envoie répond à la question posée.
Ensuite, c'est vrai que si la question posée évolue, il reste des
évolutions. La fonction proposée par Jean-Marc s'approche beaucoup de la
dernière demande, après on va voir cette histoire de première et
dernière ligne.
Logiquement, en se mettant bien d'accord avant de proposer un programme,
ça devrait limiter le nombre de versions.
Tu vois, il me paraît effectivement important de commencer par être bien d'accord sur l'énoncé. Ensuite, ce qu'on envoie répond à la question posée.
Ensuite, c'est vrai que si la question posée évolue, il reste des évolutions. La fonction proposée par Jean-Marc s'approche beaucoup de la dernière demande, après on va voir cette histoire de première et dernière ligne.
Logiquement, en se mettant bien d'accord avant de proposer un programme, ça devrait limiter le nombre de versions.
Pascal B.
"LE TROLL" a écrit | Salut, là ta fonction est explicite :o)
La fonction EOF est tout aussi explicite (apparement pas pour tout le monde)
EOF = End-Of-File = Fin-De-Fichier
Re- ;-) Pascal B.
"LE TROLL" a écrit
| Salut, là ta fonction est explicite :o)
La fonction EOF est tout aussi explicite (apparement pas pour tout le monde)
"LE TROLL" a écrit | Salut, là ta fonction est explicite :o)
La fonction EOF est tout aussi explicite (apparement pas pour tout le monde)
EOF = End-Of-File = Fin-De-Fichier
Re- ;-) Pascal B.
LE TROLL
Ben voui, je suis d'accord avec toi, c'est mieux quand on connaît tout d'avance... Mais ne vas pas trop vite, lol, peut être que d'autres données vont arriver dans une sorte de mouvement perpétuel :o) Je ne vois qu'une solution, c'est d'examiner le fichier, là au moins, on sera certain... --------
"Gloops" a écrit dans le message de news: 42416111$0$11688$
Salut,
Tu vois, il me paraît effectivement important de commencer par être bien d'accord sur l'énoncé. Ensuite, ce qu'on envoie répond à la question posée.
Ensuite, c'est vrai que si la question posée évolue, il reste des évolutions. La fonction proposée par Jean-Marc s'approche beaucoup de la dernière demande, après on va voir cette histoire de première et dernière ligne.
Logiquement, en se mettant bien d'accord avant de proposer un programme, ça devrait limiter le nombre de versions.
Ben voui, je suis d'accord avec toi, c'est mieux quand on
connaît tout d'avance... Mais ne vas pas trop vite, lol,
peut être que d'autres données vont arriver dans une sorte
de mouvement perpétuel :o)
Je ne vois qu'une solution, c'est d'examiner le fichier, là
au moins, on sera certain...
--------
"Gloops" <gloops@niark.fr> a écrit dans le message de news:
42416111$0$11688$8fcfb975@news.wanadoo.fr...
Salut,
Tu vois, il me paraît effectivement important de commencer
par être bien d'accord sur l'énoncé. Ensuite, ce qu'on
envoie répond à la question posée.
Ensuite, c'est vrai que si la question posée évolue, il
reste des évolutions. La fonction proposée par Jean-Marc
s'approche beaucoup de la dernière demande, après on va
voir cette histoire de première et dernière ligne.
Logiquement, en se mettant bien d'accord avant de proposer
un programme, ça devrait limiter le nombre de versions.
Ben voui, je suis d'accord avec toi, c'est mieux quand on connaît tout d'avance... Mais ne vas pas trop vite, lol, peut être que d'autres données vont arriver dans une sorte de mouvement perpétuel :o) Je ne vois qu'une solution, c'est d'examiner le fichier, là au moins, on sera certain... --------
"Gloops" a écrit dans le message de news: 42416111$0$11688$
Salut,
Tu vois, il me paraît effectivement important de commencer par être bien d'accord sur l'énoncé. Ensuite, ce qu'on envoie répond à la question posée.
Ensuite, c'est vrai que si la question posée évolue, il reste des évolutions. La fonction proposée par Jean-Marc s'approche beaucoup de la dernière demande, après on va voir cette histoire de première et dernière ligne.
Logiquement, en se mettant bien d'accord avant de proposer un programme, ça devrait limiter le nombre de versions.