Copie de texte en entre deux fichiers

Résolu
cs_Zock Messages postés 38 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 15 avril 2010 - 26 nov. 2008 à 11:27
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 26 nov. 2008 à 20:10
 
Bonjour j'ai un petit soucis pour un de mes programme sous excel

je voudrais ouvrir un fichier text existant et supprimer sur chaque ligne une chaines de texte comprises entre deux points virgules

Après plusieurs recherches, il semble que la seule solution soit de lire ligne par ligne, les traiter et recopier ces lignes dan un nouveau text.

J'ai un soucis au niveau de la syntaxe pour ouvrir un fichier text et en creer un autre mais surtout pour recopier chaque ligne

4 réponses

cs_Zock Messages postés 38 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 15 avril 2010
26 nov. 2008 à 17:07
Pb Résolu merci quand même
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 nov. 2008 à 11:39
salut,

voici un exemple qu'il te suffit d'adapter, montrant les méthode de lecture, de recherche, et d'écriture :



<hr />
'    REMPLACER UNE CHAÎNE PAR UNE AUTRE DANS UN FICHIER
'    http://www.codyx.org/snippet_remplacer-chaine-autre-dans-fichier_187.aspx#598
'    Posté par [ 401740 PCPT ] le 26/07/2006
<hr />



Private

 
Function
 ChangeWords(sWordsToRemove 
As
 
String
, sWordsToChange 
As
 
String
, sFile 
As
 
String

As
 
Boolean
 
    
If
 
Dir
(sFile, vbSystem 
Or
 vbHidden) = vbNullString 
Then
 

'       fichier existe?


        ChangeWords = 
False
 
    
Else
 

'       ouvre le fichier


        
Dim
 FF 
As
 
Integer
, sBuffer 
As
 
String
 
        FF = FreeFile 
        
Open
 sFile 
For
 
Input
 
As
 #FF 
            sBuffer = 
Input
(
LOF
(FF), 1) 
        
Close
 #FF 

'       ligne à changer existe?


        
Dim
 lPos 
As
 
Long
 
        lPos = 
InStr
(1, sBuffer, sWordsToRemove) 
        
If
 lPos = 0 
Then
 
            ChangeWords = 
False
 
        
Else
 

'           on découpe


            
Dim
 sFirst 
As
 
String
, sLast 
As
 
String
 
            sFirst = Left$(sBuffer, lPos - 1) 
            sLast = Right$(sBuffer, 
Len
(sBuffer) - lPos - 
Len
(sWordsToRemove) + 1) 

'           on écrit


            FF = FreeFile 
            
Open
 sFile 
For
 Output 
As
 #FF 
                
Print
 #FF, sFirst & sWordsToChange & sLast 
            
Close
 #FF 
            ChangeWords = 
True
 
        
End
 
If
 
    
End
 
If
 

End
 
Function



'----------------------------------------------------------------



'Remarques :


'Private Sub Form_Load()
''C:\test.txt contient "on dit bonjour
quand on est poli :p"
'Call ChangeWords("bonjour", "merci",
"C:\test.txt")
'End Sub





++

<hr size ="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
cs_Zock Messages postés 38 Date d'inscription mercredi 5 novembre 2008 Statut Membre Dernière intervention 15 avril 2010
26 nov. 2008 à 15:34
merci mais le petit soucis que j'ai c'est que ma chaine est variable en fonction des lignes dans le texte
la seule indication que je posséde est qu'elle est comprise entre 2 points virgules

ce que je voudrais faire c'est lire tout le fichier et le recopier en omettant la chaine de caracteres situé entre le 3eme et le 4 eme point virgule de chaque ligne
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
26 nov. 2008 à 20:10
n'hésite pas à partager ici ta solution pour les autres membres...
++
0
Rejoignez-nous