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?