Espace dans fichier texte

spheris5 Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 8 janvier 2010 - 13 oct. 2007 à 21:34
spheris5 Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 8 janvier 2010 - 14 oct. 2007 à 19:58
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

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
13 oct. 2007 à 22:37
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


 
0
medelidrissi Messages postés 180 Date d'inscription jeudi 21 août 2003 Statut Membre Dernière intervention 26 novembre 2007 2
13 oct. 2007 à 22:47
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.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
13 oct. 2007 à 22:55
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 oct. 2007 à 03:11
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)
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
14 oct. 2007 à 03:19
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)
0
spheris5 Messages postés 8 Date d'inscription vendredi 28 septembre 2007 Statut Membre Dernière intervention 8 janvier 2010
14 oct. 2007 à 19:58
merci ca marche nickel
et un grand merci pour votre réactivité, ce forum est excellent.
0
Rejoignez-nous