Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
781 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  lire txt et le sauvegarder dans un nouveau txt

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lire txt et le sauvegarder dans un nouveau txt

n°2135064
yalmallo
Posté le 05-04-2012 à 17:06:28  profilanswer
 

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?     :sarcastic:  

mood
Publicité
Posté le 05-04-2012 à 17:06:28  profilanswer
 

n°2135114
kiki29
Posté le 06-04-2012 à 04:13:25  profilanswer
 
n°2135131
yalmallo
Posté le 06-04-2012 à 09:51:54  profilanswer
 


 
 
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?

n°2135132
yalmallo
Posté le 06-04-2012 à 09:54:15  profilanswer
 


 
 
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!!!!    :??:

n°2135141
vave
Nice to meet me
Posté le 06-04-2012 à 10:33:53  profilanswer
 

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 :
  1. Sub Search_and_Copy()
  2.    
  3.     Dim inputFileName As String, outputFileName As String
  4.     Dim startText As String, endText As String
  5.     Dim FSO As Object
  6.     Dim textFile As Object
  7.     Dim data As String
  8.     Dim p1 As Long, p2 As Long
  9.    
  10.     inputFileName ="C:\5_4_2012\123.txt"     'INPUT FILE - CHANGE AS REQUIRED
  11.     outputFileName = "C:\5_4_2012\text2.txt"   'OUTPUT FILE - CHANGE AS REQUIRED
  12.    
  13.     startText = "FLIGHT"
  14.     endText = "End"
  15.    
  16.     Set FSO = CreateObject("Scripting.FileSystemObject" )
  17.    
  18.     Set textFile = FSO.OpenTextFile(inputFileName)
  19.     data = textFile.ReadAll
  20.     textFile.Close
  21.    
  22.     p1 = InStr(data, startText) + Len(startText) + 1
  23.     p2 = InStr(data, endText)
  24.     If p1 > 0 And p2 > 0 And p2 > p1 Then
  25.         Set textFile = FSO.CreateTextFile(outputFileName)
  26.         textFile.Write Mid(data, p1, p2 - p1)
  27.         textFile.Close
  28.     End If
  29. End Sub


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2135155
yalmallo
Posté le 06-04-2012 à 11:18:42  profilanswer
 

vave a écrit :

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 :
  1. Sub Search_and_Copy()
  2.    
  3.     Dim inputFileName As String, outputFileName As String
  4.     Dim startText As String, endText As String
  5.     Dim FSO As Object
  6.     Dim textFile As Object
  7.     Dim data As String
  8.     Dim p1 As Long, p2 As Long
  9.    
  10.     inputFileName ="C:\5_4_2012\123.txt"     'INPUT FILE - CHANGE AS REQUIRED
  11.     outputFileName = "C:\5_4_2012\text2.txt"   'OUTPUT FILE - CHANGE AS REQUIRED
  12.    
  13.     startText = "FLIGHT"
  14.     endText = "End"
  15.    
  16.     Set FSO = CreateObject("Scripting.FileSystemObject" )
  17.    
  18.     Set textFile = FSO.OpenTextFile(inputFileName)
  19.     data = textFile.ReadAll
  20.     textFile.Close
  21.    
  22.     p1 = InStr(data, startText) + Len(startText) + 1
  23.     p2 = InStr(data, endText)
  24.     If p1 > 0 And p2 > 0 And p2 > p1 Then
  25.         Set textFile = FSO.CreateTextFile(outputFileName)
  26.         textFile.Write Mid(data, p1, p2 - p1)
  27.         textFile.Close
  28.     End If
  29. End Sub



 
 
 
Merci bcp.
ça fonctionne parfaitement.    :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  lire txt et le sauvegarder dans un nouveau txt

 

Sujets relatifs
Lire .txt de 370 MB avec VBA[BATCH] Lire une certaine partie d'un fichier texte
Comment peut-on lire un fichier pdf en php?Mon nouveau programme: un réducteur d'URL
Comment lire la version d'Oracle Clientbouton arrêt - finir de lire un clip avant de passer à un autre
aide lire fichier texteLire mon fichier csv a partir de la deuxième ligne
[DELPHI] Lire les détails d'un fichier ?Comment lire un tableau dans le registre
Plus de sujets relatifs à : lire txt et le sauvegarder dans un nouveau txt


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR