Espace dans fichier texte

Signaler
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
8 janvier 2010
-
spheris5
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
8 janvier 2010
-
pour stocker des données dans un fichier texte de mon cru, j'ai écris le code suivant :
open "toto.txt" for append as #1
Print #1, Text1.Text, ";", Text2.Text, ";", Text3.Text, ";", Text4.Text, ";", Text5.Text, ";", Text6.Text, ";", Text7.Text
Print #1,
Close #1
Le résultat est presque ce que j'attend, à ceci près qu'il y a des espaces entre chaques champs (voir cet exemple ):
          toto          ;        dfgf        ;                  ff           ;               cf
Je voudrais ce resultat là :
toto;dfgf;ff;cf
pourriez vous m'aider ?
Merci de votre réponse, je suis un débutant sous VB6

6 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
12
Salut,

Essaye cela :

Private Sub Form_Load()


Dim MyString As String


MyString = Text1.Text & ";" & Text2.Text & ";" & Text3.Text & ";" & Text4.Text & ";" & Text5.Text & ";" & Text6.Text & ";" & Text7.Text


Open "toto.txt" For Append As #1
Print #1, MyString


Close #1


End Sub

Note : C'est une pirouette...


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
Messages postés
180
Date d'inscription
jeudi 21 août 2003
Statut
Membre
Dernière intervention
26 novembre 2007
1
Bonjour,

C'est tout à fait normal.

Pour concaténer des chaines de
caractères sans ajouter les espaces blancs, il faut utiliser l'un des deux
opérateurs "+" ou "&" au lieu de la virgule,

Print #1, (Text1.Text + ";" + Text2.Text + ";" + Text3.Text + ";" + Text4.Text + ";" + Text5.Text + ";" + Text6.Text + ";" + Text7.Text)
Bonne programmation.

Cordialement medelidrissi

<hr />En Informatique, rien n'est impossible. Mais, ce n'est pas toujours évident.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
32
Et pour completer la réponse, les espaces sont dûs aux virgules que tu met dans l'instruction Print et qui indiquent de déplacer le curseur à la colonne suivante ( des restes de l'informatique du temps des terminaux texte et autre dos, dans les années 70 et 80)

Une colonne a une largeur variable mais est généralement de 8 ou 11 caractères suivants les systèmes. C'est en gros comme si tu mettais une tabulation dans ton texte.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Salut
Et pour compléter le complément de Casy  ;-)
Dasn ton Print original, tu aurais pu remplacer les virgules (saut de colonne) par des point-virgule ;
Print #1, Text1.Text; ";"; Text2.Text; ";"; Text3.Text; ";"; Text4.Text; ";"; Text5.Text; ";"; Text6.Text; ";"; Text7.Text
Virgule ",", point-virgule ";" et interrogation "?" (pour le Print) sont des raccourcis obsolètes qui fonctionnent encore (et son bien pratiques) dans une boite de debug, mais à éviter dans de la prog 'moderne'.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
PS : Et si une de tes TexBox contient un point-virgule ...
Pense à ajouter des guillemets " au début et à la fin des zones de texte comportant le séparateur (ici ;) de champ.
L'ajout de guillemets provoque un autre problème : Et si ton texte comporte aussi des guillemets ?
Exemple :
Si Text1 contient un point-virgule ;
   Print #1, """"; Text1.Text; """;";
Si Text1 contient un guillemet ", il faut doubler le guillemet.
En .Net, je ne suis pas sur que la fonction "Replace" existe toujours, sinon essaye :
   Print #1, """"; Replace(Text1.Text, """", """"""); """;"""; Replace(Text2 ...
Pas facile à lire, hein !
D'où l'intérêt des & pour concaténer des chaines
   Print #1, """" & Replace(Text1.Text, """", """""") & """;""" & Replace(Text2 ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés





<hr />

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
8
Date d'inscription
vendredi 28 septembre 2007
Statut
Membre
Dernière intervention
8 janvier 2010

merci ca marche nickel
et un grand merci pour votre réactivité, ce forum est excellent.