radio36
Messages postés31Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention24 mars 2006
-
4 janv. 2005 à 09:32
thierrydelepine
Messages postés521Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention11 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 ?
radio36
Messages postés31Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention24 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
Gobillot
Messages postés3140Date d'inscriptionvendredi 14 mai 2004StatutMembreDernière intervention11 mars 201934 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