Bonjour,
J'ai un fichier CSV (champs séparés par des virgules) et je voudrais le
convertir en un fichier texte sans séparateur avec des logueurs de champs
constantes.
Par exemple
Renaud;Eric
Dubranna;Claude
Ric;Hunter
Je voudrais à présent avoir dans le fichier texte le champ Nom avec 20
caractères fixes et pour les Prénoms, 15 caractères fixes.
Cela est-il possible ?
D'avance merci
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Eric RENAUD
Merci de ta réponse, mais je n'arrive pas à mettre le nom de longueur 30 et le prénom à 15 Voici le code Sub Main() Dim txt As String Dim x As Variant Dim i As Long Dim nom As String * 30 Dim prenom As String * 15 FileNumber1 = FreeFile Open "c:Excelml900-1.txt" For Output As #FileNumber1 FileNumber2 = FreeFile Open "c:Excelml900.txt" For Input As #FileNumber2 Do While Not EOF(FileNumber2) Line Input #FileNumber2, CONTENU_LIGNE txt = CONTENU_LIGNE x = Split(txt, ";") For i = 0 To UBound(x) If i = 1 Then prenom = x(i) Else nom = x(i) Next i Print #FileNumber1, nom, prenom Loop Close #FileNumber2 End Sub
"Bismark Prods" a écrit dans le message de news:
oui !
Il faut parser ton fichier avec des virgules en utilisant par exemple la fonction Split(montexte,";") ce qui te donnera un tableau contenant tout
les
éléments qui étaient séparés par des ";".
Puis tu crée un type personalisé avec des longueurs tel que
public type Enr nom as string * 20 prenom as string * 15 ... end type
puis tu ouvre un fichier en accès séquentielle et tu ouvre une boucle sur ton tableau, tu renseigne les champs de Enr
(que
tu as associé à une variable), puis tu enregistre dans ton fichier
et le tour est joué
"Eric RENAUD" a écrit dans le message de news: > Bonjour, > J'ai un fichier CSV (champs séparés par des virgules) et je voudrais le > convertir en un fichier texte sans séparateur avec des logueurs de
champs
> constantes. > Par exemple > > Renaud;Eric > Dubranna;Claude > Ric;Hunter > > Je voudrais à présent avoir dans le fichier texte le champ Nom avec 20 > caractères fixes et pour les Prénoms, 15 caractères fixes. > Cela est-il possible ? > D'avance merci > >
Merci de ta réponse, mais je n'arrive pas à mettre le nom de longueur 30 et
le prénom à 15
Voici le code
Sub Main()
Dim txt As String
Dim x As Variant
Dim i As Long
Dim nom As String * 30
Dim prenom As String * 15
FileNumber1 = FreeFile
Open "c:Excelml900-1.txt" For Output As #FileNumber1
FileNumber2 = FreeFile
Open "c:Excelml900.txt" For Input As #FileNumber2
Do While Not EOF(FileNumber2)
Line Input #FileNumber2, CONTENU_LIGNE
txt = CONTENU_LIGNE
x = Split(txt, ";")
For i = 0 To UBound(x)
If i = 1 Then prenom = x(i) Else nom = x(i)
Next i
Print #FileNumber1, nom, prenom
Loop
Close #FileNumber2
End Sub
"Bismark Prods" <xanaia@urbanet.ch> a écrit dans le message de news:
efFd0OHRDHA.3192@tk2msftngp13.phx.gbl...
oui !
Il faut parser ton fichier avec des virgules en utilisant par exemple la
fonction Split(montexte,";") ce qui te donnera un tableau contenant tout
les
éléments qui étaient séparés par des ";".
Puis tu crée un type personalisé avec des longueurs tel que
public type Enr
nom as string * 20
prenom as string * 15
...
end type
puis tu ouvre un fichier en accès séquentielle
et tu ouvre une boucle sur ton tableau, tu renseigne les champs de Enr
(que
tu as associé à une variable), puis tu enregistre dans ton fichier
et le tour est joué
"Eric RENAUD" <erenaud@normandet.fr> a écrit dans le message de
news:OLcFtIHRDHA.1564@TK2MSFTNGP12.phx.gbl...
> Bonjour,
> J'ai un fichier CSV (champs séparés par des virgules) et je voudrais le
> convertir en un fichier texte sans séparateur avec des logueurs de
champs
> constantes.
> Par exemple
>
> Renaud;Eric
> Dubranna;Claude
> Ric;Hunter
>
> Je voudrais à présent avoir dans le fichier texte le champ Nom avec 20
> caractères fixes et pour les Prénoms, 15 caractères fixes.
> Cela est-il possible ?
> D'avance merci
>
>
Merci de ta réponse, mais je n'arrive pas à mettre le nom de longueur 30 et le prénom à 15 Voici le code Sub Main() Dim txt As String Dim x As Variant Dim i As Long Dim nom As String * 30 Dim prenom As String * 15 FileNumber1 = FreeFile Open "c:Excelml900-1.txt" For Output As #FileNumber1 FileNumber2 = FreeFile Open "c:Excelml900.txt" For Input As #FileNumber2 Do While Not EOF(FileNumber2) Line Input #FileNumber2, CONTENU_LIGNE txt = CONTENU_LIGNE x = Split(txt, ";") For i = 0 To UBound(x) If i = 1 Then prenom = x(i) Else nom = x(i) Next i Print #FileNumber1, nom, prenom Loop Close #FileNumber2 End Sub
"Bismark Prods" a écrit dans le message de news:
oui !
Il faut parser ton fichier avec des virgules en utilisant par exemple la fonction Split(montexte,";") ce qui te donnera un tableau contenant tout
les
éléments qui étaient séparés par des ";".
Puis tu crée un type personalisé avec des longueurs tel que
public type Enr nom as string * 20 prenom as string * 15 ... end type
puis tu ouvre un fichier en accès séquentielle et tu ouvre une boucle sur ton tableau, tu renseigne les champs de Enr
(que
tu as associé à une variable), puis tu enregistre dans ton fichier
et le tour est joué
"Eric RENAUD" a écrit dans le message de news: > Bonjour, > J'ai un fichier CSV (champs séparés par des virgules) et je voudrais le > convertir en un fichier texte sans séparateur avec des logueurs de
champs
> constantes. > Par exemple > > Renaud;Eric > Dubranna;Claude > Ric;Hunter > > Je voudrais à présent avoir dans le fichier texte le champ Nom avec 20 > caractères fixes et pour les Prénoms, 15 caractères fixes. > Cela est-il possible ? > D'avance merci > >
Bismark Prods
Non faut te faire un type personnalisé !
Type Annuaire Nom as String * 30 Prenom as String * 20 etc... end Type
"Eric RENAUD" a écrit dans le message de news:
Merci de ta réponse, mais je n'arrive pas à mettre le nom de longueur 30
et
le prénom à 15 Voici le code Sub Main() Dim txt As String Dim x As Variant Dim i As Long Dim nom As String * 30 Dim prenom As String * 15 FileNumber1 = FreeFile Open "c:Excelml900-1.txt" For Output As #FileNumber1 FileNumber2 = FreeFile Open "c:Excelml900.txt" For Input As #FileNumber2 Do While Not EOF(FileNumber2) Line Input #FileNumber2, CONTENU_LIGNE txt = CONTENU_LIGNE x = Split(txt, ";") For i = 0 To UBound(x) If i = 1 Then prenom = x(i) Else nom = x(i) Next i Print #FileNumber1, nom, prenom Loop Close #FileNumber2 End Sub
"Bismark Prods" a écrit dans le message de news:
> oui ! > > Il faut parser ton fichier avec des virgules en utilisant par exemple la > fonction Split(montexte,";") ce qui te donnera un tableau contenant tout les > éléments qui étaient séparés par des ";". > > Puis tu crée un type personalisé avec des longueurs tel que > > public type Enr > nom as string * 20 > prenom as string * 15 > ... > end type > > puis tu ouvre un fichier en accès séquentielle > et tu ouvre une boucle sur ton tableau, tu renseigne les champs de Enr (que > tu as associé à une variable), puis tu enregistre dans ton fichier > > et le tour est joué > > > "Eric RENAUD" a écrit dans le message de > news: > > Bonjour, > > J'ai un fichier CSV (champs séparés par des virgules) et je voudrais
le
> > convertir en un fichier texte sans séparateur avec des logueurs de champs > > constantes. > > Par exemple > > > > Renaud;Eric > > Dubranna;Claude > > Ric;Hunter > > > > Je voudrais à présent avoir dans le fichier texte le champ Nom avec 20 > > caractères fixes et pour les Prénoms, 15 caractères fixes. > > Cela est-il possible ? > > D'avance merci > > > > > >
Non faut te faire un type personnalisé !
Type Annuaire
Nom as String * 30
Prenom as String * 20
etc...
end Type
"Eric RENAUD" <erenaud@normandet.fr> a écrit dans le message de
news:ugDHtIIRDHA.1072@TK2MSFTNGP10.phx.gbl...
Merci de ta réponse, mais je n'arrive pas à mettre le nom de longueur 30
et
le prénom à 15
Voici le code
Sub Main()
Dim txt As String
Dim x As Variant
Dim i As Long
Dim nom As String * 30
Dim prenom As String * 15
FileNumber1 = FreeFile
Open "c:Excelml900-1.txt" For Output As #FileNumber1
FileNumber2 = FreeFile
Open "c:Excelml900.txt" For Input As #FileNumber2
Do While Not EOF(FileNumber2)
Line Input #FileNumber2, CONTENU_LIGNE
txt = CONTENU_LIGNE
x = Split(txt, ";")
For i = 0 To UBound(x)
If i = 1 Then prenom = x(i) Else nom = x(i)
Next i
Print #FileNumber1, nom, prenom
Loop
Close #FileNumber2
End Sub
"Bismark Prods" <xanaia@urbanet.ch> a écrit dans le message de news:
efFd0OHRDHA.3192@tk2msftngp13.phx.gbl...
> oui !
>
> Il faut parser ton fichier avec des virgules en utilisant par exemple la
> fonction Split(montexte,";") ce qui te donnera un tableau contenant tout
les
> éléments qui étaient séparés par des ";".
>
> Puis tu crée un type personalisé avec des longueurs tel que
>
> public type Enr
> nom as string * 20
> prenom as string * 15
> ...
> end type
>
> puis tu ouvre un fichier en accès séquentielle
> et tu ouvre une boucle sur ton tableau, tu renseigne les champs de Enr
(que
> tu as associé à une variable), puis tu enregistre dans ton fichier
>
> et le tour est joué
>
>
> "Eric RENAUD" <erenaud@normandet.fr> a écrit dans le message de
> news:OLcFtIHRDHA.1564@TK2MSFTNGP12.phx.gbl...
> > Bonjour,
> > J'ai un fichier CSV (champs séparés par des virgules) et je voudrais
le
> > convertir en un fichier texte sans séparateur avec des logueurs de
champs
> > constantes.
> > Par exemple
> >
> > Renaud;Eric
> > Dubranna;Claude
> > Ric;Hunter
> >
> > Je voudrais à présent avoir dans le fichier texte le champ Nom avec 20
> > caractères fixes et pour les Prénoms, 15 caractères fixes.
> > Cela est-il possible ?
> > D'avance merci
> >
> >
>
>
Type Annuaire Nom as String * 30 Prenom as String * 20 etc... end Type
"Eric RENAUD" a écrit dans le message de news:
Merci de ta réponse, mais je n'arrive pas à mettre le nom de longueur 30
et
le prénom à 15 Voici le code Sub Main() Dim txt As String Dim x As Variant Dim i As Long Dim nom As String * 30 Dim prenom As String * 15 FileNumber1 = FreeFile Open "c:Excelml900-1.txt" For Output As #FileNumber1 FileNumber2 = FreeFile Open "c:Excelml900.txt" For Input As #FileNumber2 Do While Not EOF(FileNumber2) Line Input #FileNumber2, CONTENU_LIGNE txt = CONTENU_LIGNE x = Split(txt, ";") For i = 0 To UBound(x) If i = 1 Then prenom = x(i) Else nom = x(i) Next i Print #FileNumber1, nom, prenom Loop Close #FileNumber2 End Sub
"Bismark Prods" a écrit dans le message de news:
> oui ! > > Il faut parser ton fichier avec des virgules en utilisant par exemple la > fonction Split(montexte,";") ce qui te donnera un tableau contenant tout les > éléments qui étaient séparés par des ";". > > Puis tu crée un type personalisé avec des longueurs tel que > > public type Enr > nom as string * 20 > prenom as string * 15 > ... > end type > > puis tu ouvre un fichier en accès séquentielle > et tu ouvre une boucle sur ton tableau, tu renseigne les champs de Enr (que > tu as associé à une variable), puis tu enregistre dans ton fichier > > et le tour est joué > > > "Eric RENAUD" a écrit dans le message de > news: > > Bonjour, > > J'ai un fichier CSV (champs séparés par des virgules) et je voudrais
le
> > convertir en un fichier texte sans séparateur avec des logueurs de champs > > constantes. > > Par exemple > > > > Renaud;Eric > > Dubranna;Claude > > Ric;Hunter > > > > Je voudrais à présent avoir dans le fichier texte le champ Nom avec 20 > > caractères fixes et pour les Prénoms, 15 caractères fixes. > > Cela est-il possible ? > > D'avance merci > > > > > >
Eric RENAUD
J'ai enfin réussi. Je ne sais pas si c'est parfait, mais cela fonctionne. Si il y mieux, je suis preneur. Sub Main() Dim txt As String Dim x As Variant Dim i As Long Dim Valeur As Enr Kill "c:excelml900-1.txt" FileNumber1 = FreeFile Open "c:Excelml900-1.txt" For Output As #FileNumber1 'Len = 45 ' Lecture du fichier source ml900.txt FileNumber2 = FreeFile Open "c:Excelml900.txt" For Input As #FileNumber2 Do While Not EOF(FileNumber2) Line Input #FileNumber2, CONTENU_LIGNE txt = CONTENU_LIGNE x = Split(txt, ";") For i = 0 To UBound(x) If i = 1 Then Valeur.Prenom = x(i) Else Valeur.Nom = x(i) Next i Print #FileNumber1, Valeur.Nom & Valeur.Prenom Loop Close #FileNumber2 End Sub
"Bismark Prods" a écrit dans le message de news:
oui !
Il faut parser ton fichier avec des virgules en utilisant par exemple la fonction Split(montexte,";") ce qui te donnera un tableau contenant tout
les
éléments qui étaient séparés par des ";".
Puis tu crée un type personalisé avec des longueurs tel que
public type Enr nom as string * 20 prenom as string * 15 ... end type
puis tu ouvre un fichier en accès séquentielle et tu ouvre une boucle sur ton tableau, tu renseigne les champs de Enr
(que
tu as associé à une variable), puis tu enregistre dans ton fichier
et le tour est joué
"Eric RENAUD" a écrit dans le message de news: > Bonjour, > J'ai un fichier CSV (champs séparés par des virgules) et je voudrais le > convertir en un fichier texte sans séparateur avec des logueurs de
champs
> constantes. > Par exemple > > Renaud;Eric > Dubranna;Claude > Ric;Hunter > > Je voudrais à présent avoir dans le fichier texte le champ Nom avec 20 > caractères fixes et pour les Prénoms, 15 caractères fixes. > Cela est-il possible ? > D'avance merci > >
J'ai enfin réussi. Je ne sais pas si c'est parfait, mais cela fonctionne. Si
il y mieux, je suis preneur.
Sub Main()
Dim txt As String
Dim x As Variant
Dim i As Long
Dim Valeur As Enr
Kill "c:excelml900-1.txt"
FileNumber1 = FreeFile
Open "c:Excelml900-1.txt" For Output As #FileNumber1 'Len = 45
' Lecture du fichier source ml900.txt
FileNumber2 = FreeFile
Open "c:Excelml900.txt" For Input As #FileNumber2
Do While Not EOF(FileNumber2)
Line Input #FileNumber2, CONTENU_LIGNE
txt = CONTENU_LIGNE
x = Split(txt, ";")
For i = 0 To UBound(x)
If i = 1 Then Valeur.Prenom = x(i) Else Valeur.Nom = x(i)
Next i
Print #FileNumber1, Valeur.Nom & Valeur.Prenom
Loop
Close #FileNumber2
End Sub
"Bismark Prods" <xanaia@urbanet.ch> a écrit dans le message de news:
efFd0OHRDHA.3192@tk2msftngp13.phx.gbl...
oui !
Il faut parser ton fichier avec des virgules en utilisant par exemple la
fonction Split(montexte,";") ce qui te donnera un tableau contenant tout
les
éléments qui étaient séparés par des ";".
Puis tu crée un type personalisé avec des longueurs tel que
public type Enr
nom as string * 20
prenom as string * 15
...
end type
puis tu ouvre un fichier en accès séquentielle
et tu ouvre une boucle sur ton tableau, tu renseigne les champs de Enr
(que
tu as associé à une variable), puis tu enregistre dans ton fichier
et le tour est joué
"Eric RENAUD" <erenaud@normandet.fr> a écrit dans le message de
news:OLcFtIHRDHA.1564@TK2MSFTNGP12.phx.gbl...
> Bonjour,
> J'ai un fichier CSV (champs séparés par des virgules) et je voudrais le
> convertir en un fichier texte sans séparateur avec des logueurs de
champs
> constantes.
> Par exemple
>
> Renaud;Eric
> Dubranna;Claude
> Ric;Hunter
>
> Je voudrais à présent avoir dans le fichier texte le champ Nom avec 20
> caractères fixes et pour les Prénoms, 15 caractères fixes.
> Cela est-il possible ?
> D'avance merci
>
>
J'ai enfin réussi. Je ne sais pas si c'est parfait, mais cela fonctionne. Si il y mieux, je suis preneur. Sub Main() Dim txt As String Dim x As Variant Dim i As Long Dim Valeur As Enr Kill "c:excelml900-1.txt" FileNumber1 = FreeFile Open "c:Excelml900-1.txt" For Output As #FileNumber1 'Len = 45 ' Lecture du fichier source ml900.txt FileNumber2 = FreeFile Open "c:Excelml900.txt" For Input As #FileNumber2 Do While Not EOF(FileNumber2) Line Input #FileNumber2, CONTENU_LIGNE txt = CONTENU_LIGNE x = Split(txt, ";") For i = 0 To UBound(x) If i = 1 Then Valeur.Prenom = x(i) Else Valeur.Nom = x(i) Next i Print #FileNumber1, Valeur.Nom & Valeur.Prenom Loop Close #FileNumber2 End Sub
"Bismark Prods" a écrit dans le message de news:
oui !
Il faut parser ton fichier avec des virgules en utilisant par exemple la fonction Split(montexte,";") ce qui te donnera un tableau contenant tout
les
éléments qui étaient séparés par des ";".
Puis tu crée un type personalisé avec des longueurs tel que
public type Enr nom as string * 20 prenom as string * 15 ... end type
puis tu ouvre un fichier en accès séquentielle et tu ouvre une boucle sur ton tableau, tu renseigne les champs de Enr
(que
tu as associé à une variable), puis tu enregistre dans ton fichier
et le tour est joué
"Eric RENAUD" a écrit dans le message de news: > Bonjour, > J'ai un fichier CSV (champs séparés par des virgules) et je voudrais le > convertir en un fichier texte sans séparateur avec des logueurs de
champs
> constantes. > Par exemple > > Renaud;Eric > Dubranna;Claude > Ric;Hunter > > Je voudrais à présent avoir dans le fichier texte le champ Nom avec 20 > caractères fixes et pour les Prénoms, 15 caractères fixes. > Cela est-il possible ? > D'avance merci > >