Remplacer texte d'un fichier texte [Résolu]

Signaler
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011
-
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
-
Bonjour amis programmeurs et programmeuzes,

me revoila pour de nouvelles aventures, aujourd'hui comment remplacer le texte d'un fichier texte en utilisant des cellules de excel.

Alors voila, j'ai un fichier texte nommé machin.ftp(fichier texte de commandes dos) qui contient ceci :

open 0.0.0.0
user
pass
get truc1.txt
quit
exit

je transfere ce fichier dans excel et je rentre les infos nécéssaires a la connection (l'ip, le nom d'utilisateur, le pass et le numero de truc.txt)

ensuite avec une macro je voudrai remplacer ce que contient mon machin.ftp avec les infos des cellules.
Voici le code macro que j'utilise pour changer les infos :

temoin = 1
Open "C:\machin.ftp" For Input Access Read As 1
Do While Not EOF(1) 'boucle jusqu'a ce qu'il n'y est plus de valeurs
Line Input #1, textline 'La ligne lue est retournée dans la variable Textline
Range("A" & temoin).Value = textline 'A chaque ligne une nouvelle cellule de la colonne A
temoin = temoin + 1
Loop
Close #1

'change ip
cell = Range("A1").Value
Mid(cell, 6, 9) = TextBox1.Value
Range("A1").Value = cell

'change user
cell = Range("A2").Value
Mid(cell, 0, 15) = TextBox2.Value
Range("A2").Value = cell

'change pass
cell = Range("A3").Value
Mid(cell, 0, 15) = TextBox3.Value
Range("A3").Value = cell

'Change le numéro de truc
cell = Range("A4").Value
Mid(cell, 10, 1) = TextBox4.Value
Range("A4").Value = cell



Voila, et maintenant j'aimerais envoyer ces données dans le fichier machin.ftp mais je ne vois pas comment faire.

Quelqu'un aurait une idée??

merci d'avance

15 réponses

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

Il me semble que, du moment que tu ouvres ton fichier avec OUTPUT(car  cela crée un nouveau fichier en sorte c'est le contraire de APPEND), tu n'as nullement besoin de faire cela :
Print #1, "" 
Close #1

Je pense que tu devrait ouvrir directement ton fichier avec OUTPUT, écrire dedans puis le fermer.

A+
Exploreur

 Linux a un noyau, Windows un pépin

Un jeu en flash sympa...? Voir ici
Si vous voulez vous inscrire
mettez comme parrain : exploreur
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Re,

Essaye à la place cette ligne : 

textline = "Coucou...c'est moi...!!" 'Range("A" & temoin).Value

A+
Exploreur

 Linux a un noyau, Windows un pépin

Un jeu en flash sympa...? Voir ici
Si vous voulez vous inscrire
mettez c
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Le fichier d'origine peut il etre remplacer?

Si oui
- Efface ton fichier
- Open Fic Nam For Append
- Boucle pour Print
- Close

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

Voila le texte que j'ai rajouté a la fin du code que j'ai donné plus haut, mais ca efface tout le contenu du fichier machin.ftp :


'rentre le texte dans le FTP
'effece le contenu du fichier...
temoin = 1
Open "C:\machin.ftp" For Output As 1
Print #1, ""
Close #1

'...le remplace par le contenu des cellules
Open "C:\machin.ftp" For Append As 1
Do While Not EOF(1)
Range("A" & temoin) = textline
Print #1, textline
temoin = temoin + 1
Loop
Close #1

je vais essayer de mettre les fonctions open et close dans la boucles pour voir.
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
56
Salut,
Que contient le fichier Avant at Apres?

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

Ca marche pas non plus,la je vois pas, en faisant une boucle avec le print dedans ca devrait fonctionner Oo
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

avant le fichier contient ce que j'ai mis plus haut :
open 10.0.0.15
ftp
ftp
get truc.txt
disconnect
quit
exit

et lorsque je lance la macro, le fichier est vide.

PS : pour les essais je n'essaye de changer que le numéro de truc.txt
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

Je me demandais si le probleme ne venais pas de la condition de la boucle "not EOF(1), alors je l'ai remplacer par "temoin <8) mais c'est le meme résultat.
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

temoin = 1
Open "C:\Année.ftp" For Output As 1
Do While Not EOF(1)
Range("A" & temoin).Value = textline
Print #1, textline
temoin = temoin + 1
Loop
Close #1

j'ai enle vé la partie append et j'ai fait ma boucle dans le output mais c'est le meme résultat :(
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

en suivant cette voix j'ai enlever la partie output et n'ai garder que la partie append
Résultat : le fichier n'est pas ecrasé, ni vidé mais rien n'est ajouté!

La je comprend plus trop ce qui se passe, c'etait censé rajouté le texte demandé non??
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Re,

Essaye comme cela :

Private Sub Command1_Click()


Dim iFreeFichier As Integer


iFreeFichier = FreeFile


Open "C:\Année.ftp" For Output As #iFreeFichier
  
   textline = Range("A" & temoin).Value
   Print #iFreeFichier, textline
  
Close #iFreeFichier

End Sub


A+
Exploreur

 Linux a un noyau, Windows un pépin

Un jeu en flash sympa...? Voir ici
Si vous voulez vous inscrire
mettez comme parrain : exploreur
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

pour ce qui est du freefile j'ai deja essayer sans succées, pour l'autre...je me dmande pourquoi j'y ai pas penser plus tot, ca serait bien probable que se soit ca...
et bin nan, meme resulta, si je met la fonction output avant la fonction append ca efface tous le contenu du fichier, et si je ne met que la fonction append, le contenu du fichier ne change pas.

J'essai de vérifier aussi si ya pas un probleme de chemin d'accées ou de nom de fichiers mais je n'en voie pas
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

Je pense que le probleme vient du EOF, apperement cette fonction ne peut etre utilisée que pour un fichier en Input, mais je ne connais pas d'autre fonction pour arreter le traitement (apart une comparaison simple mais ca non plus ca ne marche pas...a moins que maintenant que j'ai remplacé la ligne de texte plus haut...LE APPEND FONCTIONNE!!!

J'essaye avec le output comme tu l'a conseillé plus haut m'sieur exploreur...CA MAAAAARCHE!!!!!
Omg c'etait juste ca, et remanier le code aprés!

Merci beaucoup a vous pour votre aide.

J'vous aime (je le crie sur internet, parce que si je crie ca au bureau je pense que ca plaira pas a tout le monde ^^)

Encore merci
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
Salut,

n'oublie pas d'accepter la reponse d'exploreur.

Salut Exploreur, oui pas facile au debut les feux aux US

A+
Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
non...non...le cire pas trop sur internet...lol... il n'y à rien d'extraordinaire que d'aider les personnes en difficulté....

A+
Exploreur

 Linux a un noyau, Windows un pépin

Un jeu en flash sympa...? Voir ici
Si vous voulez vous inscrire
mettez comme parrain : exploreur