Lire txt et le sauvegarder dans un nouveau txt

yalmallo Messages postés 10 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 4 juin 2012 - 5 avril 2012 à 17:16
yalmallo Messages postés 10 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 4 juin 2012 - 6 avril 2012 à 10:34
OK. je vais essayer de voir ça après. peut être que je changerai ma méthodologie de travail.

Sinon, je cherche à trouver une méthode qui fait la suite:

1) ouvrir un fichier txt
2) chercher mot toto
3) copier toutes les lignes après "toto" dans un nouveau fichier txt.
4) dès qu'il trouve le mot "titi", arrêter de copier et fermer les fichiers txt.


exemple de fichier texte :

blablablabla
......
toto:

lignes à copier dans nouveau texte
......

titi:

blablablabla.

......

fin texte



est-ce possible de faire un programme VBA qui fait ça?

14 réponses

Utilisateur anonyme
5 avril 2012 à 17:19
est-ce possible de faire un programme VBA qui fait ça?

oui.
0
yalmallo Messages postés 10 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 4 juin 2012
5 avril 2012 à 17:20
OUI, mais comment?!!!!
aurais tu un exemple?
0
Utilisateur anonyme
5 avril 2012 à 17:23
Et je pense bien que tu devrais regarder dans l'aide de vba:

et là.
0
yalmallo Messages postés 10 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 4 juin 2012
5 avril 2012 à 17:26
OK.

tu as bien lu les étapes que le programme doit faire?!!!

fin, pour moi ( en tant que débutant) ce n'est pas facile!! et c pour ça que je demande de l'aide!
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 avril 2012 à 17:26
Bonjour,
Ton aide VBA sur les mots :
Open
For input
Line Input (tu y trouveras même un exemple !)

Ta demande est par ailleurs assez peu précise en ce qui concerne les mots toto et titi (pas précisé si seuls sur la ligne, ou devant, ou n'importe où sur la ligne).
A tout hasard, donc : lire au besoin ton aide VBA : Instr
Reviens avec ton essai de code si encore difficulté (en principe non, si tu t'appliques ...)

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 avril 2012 à 17:28
fin, pour moi ( en tant que débutant) ce n'est pas facile!! et c pour ça que je demande de l'aide!

Ton aide VBA devrait suffire !
Je ne me rappelle aucune difficulté à mes tous débuts avec ça et pour ce que tu veux faire !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
yalmallo Messages postés 10 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 4 juin 2012
5 avril 2012 à 17:31
merci "ucfoutu".

Concernant mes mots toto et titi, oui ils sont seuls dans la ligne.je suis en train d'essayer de faire le programme, mais la difficulté est comment copier ce qu'il y a après le mot toto ( c à dire entre toto et titi) et s’arrêter lorsqu’on arrive au mot titi?

Bon, je vais essayer de regarder ça et puis on verra.

Merci.
0
Utilisateur anonyme
5 avril 2012 à 17:51
tu as bien lu les étapes que le programme doit faire?!!!

Oui, même que c'est l'enfance de l'art.

Il y a une flopée de sites avec dees exemples de programmes.

Commence par aller voir sur le site de Frédéric Sigonneau ou sur excelabo.net
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
5 avril 2012 à 17:53
mais la difficulté est comment copier ce qu'il y a après le mot toto ( c à dire entre toto et titi) et s’arrêter lorsqu’on arrive au mot titi?


Pour cela, le procédé est quasiment le même :
Ouvrir/créer un second fichier avec Open ... For Output
Y écrire avec [u]Print #, instruction
/u
puis détruire le 1er fichier.
Si le second doit avoir le même nom que le premier : Instruction Name, instruction
Ton aide VBA sur ces mots, là encore.
J'aimerais quand même te voir au moins commencer à coder sur ces bases ! (car très simple).




____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
yalmallo Messages postés 10 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 4 juin 2012
6 avril 2012 à 09:55
Je donne un exemple de code qui n'a pas marché:


Sub Search_and_Copy()

Dim inputFileName As String, outputFileName As String
Dim startText As String, endText As String
Dim FSO As Object
Dim textFile As Object
Dim data As String
Dim p1 As Long, p2 As Long

inputFileName = "C:\5_4_2012\123.txt" 'INPUT FILE - CHANGE AS REQUIRED
outputFileName = "C:\5_4_2012\text2.txt" 'OUTPUT FILE - CHANGE AS REQUIRED

startText = "FLIGHT"
endText = "End"

Set FSO = CreateObject("Scripting.FileSystemObject" )

Set textFile = FSO.OpenTextFile(inputFileName)
data = textFile.ReadAll
textFile.Close

p1 = InStr(data, startText)
If p1 > 0 Then
p1 = InStr(p1, data, vbCrLf)
If p1 > 0 Then
p1 = p1 + 2
p2 = InStr(p1, data, endText)
If p2 > 0 Then
p2 = InStrRev(data, vbCrLf, p2)
Set textFile = FSO.CreateTextFile(outputFileName)
textFile.Write Mid(data, p1, p2 - p1)
textFile.Close
End If
End If
End If
End Sub





Je ne sais pas prquoi ça n'a pas fonctionné, bien qu'il ne me donne ni message d'erreur, ni un arret de la procédure!!!!
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 avril 2012 à 10:01
Je ne t'ai pas demandé d'utiliser FSO !
J'ai d'ailleurs personnellement inhibé tout ce qui est VBS de ma machine (raisons de sécurité) !
VBA t'offre ce qui est nécessaire et je t'en ai parlé.
Qu'en as-tu donc fait ? As-tu ouivert ton aide VBA sur les mots que je t'ai signalés ? Apparemment pas !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
yalmallo Messages postés 10 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 4 juin 2012
6 avril 2012 à 10:11
Si, mais le problème est que l fichier txt que j'ai, c un gros fichier. et donc si je vais le lire ligne par ligne ça va prendre bcp de temps!!!!
Donc, j'ai cherché sur internet et trouvé FSO. donc j'ai essayé avec FSO. Mais bon, apparemment c un peu plus compliqué que ça.

Bref, c pas grave. Sinon, ya aussi la méthode ADODB qui est aussi rapide et pas mal à utiliser!

Euh, je sais pas! je ne suis pas fait pour la programmation.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 avril 2012 à 10:29
Si, mais le problème est que l fichier txt que j'ai, c un gros fichier. et donc si je vais le lire ligne par ligne ça va prendre bcp de temps!!!!

Que tu affirmes ! car :
- non seulement ce n'est pas vrai
mais encore
- la méthode Open te permet également de lire tout d'un coup, si tu le souhaites !
- si ton fichier est si gros, il n'est justement pas recommandé de le lire d'un seul coup, mais, précisément, ligne par ligne
- et enfin : dans le cas d'une lecture "d'un seul coup", il te faudra en plus passer par split
Alors ?

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
yalmallo Messages postés 10 Date d'inscription jeudi 5 avril 2012 Statut Membre Dernière intervention 4 juin 2012
6 avril 2012 à 10:34
OK, Je vais voir ça.

à essayer.
0
Rejoignez-nous