lire txt et le sauvegarder dans un nouveau txt - VB/VBA/VBS - Programmation
Marsh Posté le 06-04-2012 à 04:13:25
Salut, voir http://warin.developpez.com/access/fichiers/ et adapter
Marsh Posté le 06-04-2012 à 09:51:54
kiki29 a écrit : Salut, voir http://warin.developpez.com/access/fichiers/ et adapter |
Merci, mais les procédures d'ouverture et fermeture, et même créer un fichier txt, ça je le sais, et j'ai plein d'exemples sur internet. Mais comment pouvoir dire à VBA de chercher le mot "toto" et le mot "titi" et copier ce qui se trouve entre les deux mots dans txt?
Marsh Posté le 06-04-2012 à 09:54:15
kiki29 a écrit : Salut, voir http://warin.developpez.com/access/fichiers/ et adapter |
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 me donne ni message d'erreur, ni un arret de la procédure!!!!
Marsh Posté le 06-04-2012 à 10:33:53
J'ai pas compris ce que tu voulais faire avec les vbCrLf ?
Sinon, comme ça ça devrait marcher si bien sûr les textes de début et de fin sont présents :
Code :
|
Marsh Posté le 06-04-2012 à 11:18:42
vave a écrit : J'ai pas compris ce que tu voulais faire avec les vbCrLf ?
|
Merci bcp.
ça fonctionne parfaitement.
Marsh Posté le 05-04-2012 à 17:06:28
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?