Remplacer texte d'un fichier texte

Résolu
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011 - 20 mars 2008 à 11:22
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 - 20 mars 2008 à 14:32
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

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
20 mars 2008 à 13:19
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
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
20 mars 2008 à 14:02
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
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
20 mars 2008 à 11:30
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
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
20 mars 2008 à 11:36
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.
0

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

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
20 mars 2008 à 11:39
Salut,
Que contient le fichier Avant at Apres?

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
20 mars 2008 à 11:41
Ca marche pas non plus,la je vois pas, en faisant une boucle avec le print dedans ca devrait fonctionner Oo
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
20 mars 2008 à 11:45
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
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
20 mars 2008 à 12:10
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.
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
20 mars 2008 à 13:35
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 :(
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
20 mars 2008 à 13:42
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??
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
20 mars 2008 à 13:59
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
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
20 mars 2008 à 14:09
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
0
cs_faucheuse Messages postés 308 Date d'inscription jeudi 10 janvier 2008 Statut Membre Dernière intervention 27 octobre 2011
20 mars 2008 à 14:25
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
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 15
20 mars 2008 à 14:31
Salut,

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

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

A+
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
20 mars 2008 à 14:32
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
0
Rejoignez-nous