Le format d un fichier*.txt

cs_popeye59 Messages postés 29 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 10 août 2009 - 3 févr. 2003 à 20:14
cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003 - 5 févr. 2003 à 11:22
Bon, je dois faire une sauvegarde de ma base de donnée Acces sur un fichier .txt. Jusque la pas de pb.
Mais il y a 300 enregistrement dans cette base et chaque nouvel enregistrement dans mon fichierest mis a la ligne et chaque nouveau champs est separé pas un virgule.Bref c est le bordel pour relire les données.

Je voudrai que chaque champs soit mis en colonne dans le fichier txt.

Voici comment c est pour l instant:
Perrine,Delamien,112 rue des palmier fleuri,5900 lille
Ben,Lire,57 rue de la Bar,62000 Calais
........

Et voici comment j aimerai que se soit:
Perrine Delamien 112 rue des palmier fleuri 59000 lille
Ben Lire 57 rue de la Bar 62000 Calais

Merci pour votre aide

13 réponses

cs_popeye59 Messages postés 29 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 10 août 2009
3 févr. 2003 à 20:57
Oupps,l alignement que j ai voulu montré ne fonctionne pas... pour le voire, regarder sur la frame pour repondre, la c est bien aligner.
En fait je voulais que tous les nom soit aligner lun en dessous de lautre, praeil pour les prenom, et pareil pour l adresse....
Merci de m aider...
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
4 févr. 2003 à 03:58
Bonsoir
Je te suggère d'utiliser un fichier à accès aléatoire (Random) avec des champs de longueur fixe, du genre :

Private Type Enreg
Nom As String * 20
Prenom As String * 20
Adresse As String * 20
Codpost As String * 5
Ville As String * 20
End Type
Dim Gus As Enreg

Open "D:\Chemin\Fichier.txt" For Random As #1 Len = 85

'écriture
Gus.Nom = "SonNom"
Gus.Nom = "SonPrénom"
Gus.Adresse = "15 Rue des fleurs"
Gus.Codpost = "69360"
Gus.Ville = "Trifouilly-Les-Oies"
Put 1, 1, Gus
....

' lecture
Get 1,5,Gus
Msgbox Gus.Nom & Gus.Prénom
0
cs_popeye59 Messages postés 29 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 10 août 2009
4 févr. 2003 à 08:51
Bon, je te remercie pour l aide, mais pourquoi utilise tu un Random et non un append?
Sinon ou dois je mettre cela:

Private Type Enreg
Nom As String * 20
Prenom As String * 20
Adresse As String * 20
Codpost As String * 5
Ville As String * 20
End Type
Dim Gus As Enreg

Parce que je sais qu en language C on met tous a la suite et cela ne pose aucun probleme, cependant, si ici, je le met a l endroit ou tu la placer, VB me dis:
"Instruction incorrect dans une procedure"? c est donc que l on ne peut pas mettre de private type dans un private sub.J ai donc voulu le mettre dans un module, mais sa ne change rien...

Que faut il faire?
Merci.
0
cs_popeye59 Messages postés 29 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 10 août 2009
4 févr. 2003 à 09:04
A mon avis il faut le mettre dansun module, mais si je fais cela, VB me dis: "un objet est requis" au niveau de
Gus.Nom = "SonNom"
En fait il fait comme si il ne connaissait pas gus ni nom alors que je l ai mis dans le module.
Merci pour l aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003
4 févr. 2003 à 09:21
Les UDT (User Defined Type), structure "Type... End Type" doivent être placés dans la section "Déclaration" du code d'une feuille (ils sont alors "Private"), ou d'un module (tu peux alors choisir la portée de ton UDT, "Private" ou "Public".

Selon la portée et l'endroit où tu as défini l'UDT, tu peux ensuite créer une variable objet qui fait référence à cet UDT :
Dim MaVariableObjet as MonUDT
N'importe où dans le projet si tu as défini l'UDT en tant que Public dans un module, ou uniquement dans la form ou le module où est déclaré l'UDT si celui-ci est "Private".

A+
Christian
0
cs_popeye59 Messages postés 29 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 10 août 2009
4 févr. 2003 à 10:56
Encore une petite question:
lorsqu il y a un champs vide (null),VB dit qu il y a un pb,et n accepte pas les camps null, je veux donc remplacé le camps null par en "-" en faisant cela:

test = frmMachine.DataTous.Recordset.Fields("type machine")If test Null Or test "" Then
test = "-"
End If
Gus.a = test
Cependant, VB ne ventre jamais dans la boucle meme si le champs est null.

Comment faire? Desolé de vous emmerder avec mes questions a 2 balles...
0
cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003
4 févr. 2003 à 11:06
Utilise la fonction IsNull(monChamp)

ex :

if not IsNull(monChamp) then
' traiter le champ
Else
' ignorer le champ
End if
0
cs_popeye59 Messages postés 29 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 10 août 2009
4 févr. 2003 à 13:41
Bon, sa fonctionne presque totalement,cette fois si je pense que sait vraiment la derniere question...
En fait tous fonctionne mais en utilisant append pour creer le fichier, les " et les virgules restent...
write #1, gus.nom, gus.prenom , gus.adresse

et dans le fichier sa donne
"Alfred" ","Walace" ","29 rue simone"....
Enfin, je n est plus l exemple exact, il menque peu etre un ou deux guillmet mais c est dans se style la.
Encore merci
0
cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003
4 févr. 2003 à 16:52
Bien !
et c'est koi, la dernière question ????????????
0
cs_popeye59 Messages postés 29 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 10 août 2009
4 févr. 2003 à 18:49
Et bien, je ne veux pas voir les " et les, dans mon fichier txt...
0
cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003
4 févr. 2003 à 20:16
Pour ton info :

la virgule est le caractère standard de séparation des champs dans les fichiers de type txt séquentiels.
Les doubles quotes te permettent d'avoir des champs contenant des virgules qui ne seront pas confondues avec des séparateurs de champs.

Si tu ne veux plus "voir" (?) les virgules, faut les remplacer par autre chose, et utiliser l'instruction "Print" pour écrire ton enregistrement d'un seul bloc... et procéder de la même manière pour le lire...

Mais...
Quand tu dis "voir", c'est à quelle occasion ? Dans quel contexte ?
0
cs_popeye59 Messages postés 29 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 10 août 2009
5 févr. 2003 à 09:04
Je te remercie bie, maintenant tous fonctionne un peu pres bien... mais c est tjs aussi moche... on ma demandé de mettre dans un fichier texte afin de si reperer mais se n est pas clair du tous en fait.il aurait du me demandais de le faire sous forme de tableau.
Un grand merci tout de meme pour toute cette aide.
Sinon, lorsque j ai un listview dans ma form, comment est ce que je peux imprimer cette list view???
0
cs_Humphrey Messages postés 22 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 16 février 2003
5 févr. 2003 à 11:22
Et ça t'es pas venu à l'idée d'écrire un petit bout de programme pour présenter ton fichier (sans qu'on te le demande) ?
0
Rejoignez-nous