Syntaxe dans fihier .txt

radio36 Messages postés 31 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 24 mars 2006 - 4 janv. 2005 à 09:32
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 - 4 janv. 2005 à 14:58
Bonjour,

Je souhaite écrire dans un fichier .txt, masi je souhaiterais pouvoir écrire les diff éléments (nom et prénom ) en colonne et pas sur une ligne.
J'utilise vbtab pour espace, j'ai essayé vbreturn et vb enter mais cela ne fonctionne pas
qlq un aurait il une piste pour moi ?

Merci

Radio36

4 réponses

thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
4 janv. 2005 à 11:24
Open App.Path & "\test.txt" For Output As #1
Print #1, "hello"
Print #1, "bonjour"
Print #1, "test"

Close #1
0
radio36 Messages postés 31 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 24 mars 2006
4 janv. 2005 à 11:34
merci
En fait, pour être plus précis, je récupere les information d'une listvieuw que j'envoie vers un .txt pour archivage
ce que je souhaite faire s'est pouvoir par une instruction passer à la ligne suivante qd je le souhaite

For i = 1 To lstresult1.ListItems.Count
List = List & lstresult1.ListItems.Item(i) & lstresult1.ListItems.Item(i).ListSubItems(1) & vbTab & lstresult1.ListItems.Item(i).ListSubItems(2) & vbTab & lstresult1.ListItems.Item(i).ListSubItems(7) & vbTab & vbEnter

'List = List & lstresult1.ListItems.Item(i) & vbTab & lstresult1.ListItems.Item(i).ListSubItems(1) & vbTab & vbTab
Next i
Open "c:\....\'" & d & "' " For Output As 1
Print #1, a
Print #1,
Print #1, "Nombre élèves :" & lstresult1.ListItems.Count
Print #1,
Print #1, List

je voudrais pouvoir avoir le premier ele sur une ligne puis le second sur la seconde et ainsi de suite

Merci
Radio36
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
4 janv. 2005 à 12:27
pour passer d'une Ligne à l'autre tu dois envoyer des vbCrLf.
pour avoir des colonnes de longueur fixe un seul vbTab ne suffit pas, il faudrait ajouter un nombre de vbTab en fonction de la longueur de chaque zone.
le plus simple c'est de définir un type correspondant à un enregistrement:

Private Type Enregistrement
Nom As String * 24
Prenom As String * 24
Adresse As String * 32
Fin As String * 2
End Type

ensuite pour l'utiliser:

Dim Ligne As Enregistrement
Ligne.Fin = vbCrLf

soit utiliser un fichier à accés Random:
Open "C:\MonFichier.txt" For Random As #1 Len = Len(Ligne)
For i = 1 To lstresult1.ListItems.Count
Ligne.Nom = lstresult1.ListItems.Item(i)
Ligne.Prenom = lstresult1.ListItems.Item(i).ListSubItems(1)
Ligne.Adresse = lstresult1.ListItems.Item(i).ListSubItems(2)
Put #1, , Ligne
Next i
Close #1

sinon écrire chaque zone séparément:
Open "C:\MonFichier.txt" For Output As #1
For i = 1 To lstresult1.ListItems.Count
Ligne.Nom = lstresult1.ListItems.Item(i)
Ligne.Prenom = lstresult1.ListItems.Item(i).ListSubItems(1)
Ligne.Adresse = lstresult1.ListItems.Item(i).ListSubItems(2)
Print#1, Ligne.Nom
Print#1, Ligne.Prenom
Print#1, Ligne.Adresse
Next i
Close #1

Daniel
0
thierrydelepine Messages postés 521 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 11 septembre 2008 6
4 janv. 2005 à 14:58
la reponse de Daniel est sans aucun doute la meilleur au probleme posé.
0
Rejoignez-nous