Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais besoin
de supprimer une ligne dans un fichier texte lorsque cette ligne
contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une classe
CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires à la
fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais besoin
de supprimer une ligne dans un fichier texte lorsque cette ligne
contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une classe
CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires à la
fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais besoin
de supprimer une ligne dans un fichier texte lorsque cette ligne
contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une classe
CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires à la
fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une méthode
Replace ? Ainsi tu pourrais remplacer blabla par rien ! et ca serait plus
simple et sans doute plus clair.
"F. David" a écrit dans le message de
news:
> Bonjour,
>
> Pour les besoins d'une petite application personnelle, j'aurais besoin
> de supprimer une ligne dans un fichier texte lorsque cette ligne
> contient le mot "blabla".
> J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une classe
> CFile (de Yanick Lefebvre) qui permet de faire ça.
>
> Ca marche bien sauf que ca me rajoute des lignes supplémentaires à la
> fin du fichier texte.
> Est-ce que quelqu'un aurait une idée. Voici mon code :
>
> Dim f As CFile
> Dim i As Long
> Dim s As String
> Set f = New CFile
>
> f.ReadFile "c:test.txt"
>
> For i = 0 To f.LineCount
> s = f.Lines(i)
> If Left(s, 6) = "blabla" Then
> s = ""
> f.SetLine i, s
> End If
> Next i
> f.SaveFile
>
> Je me trompe peut-être quelque part mais où ?
>
> Merci de votre aide
>
> Franck
>
>
Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une méthode
Replace ? Ainsi tu pourrais remplacer blabla par rien ! et ca serait plus
simple et sans doute plus clair.
"F. David" <franck.dh@alussinan.org> a écrit dans le message de
news:uUEg1tMtDHA.1764@TK2MSFTNGP10.phx.gbl...
> Bonjour,
>
> Pour les besoins d'une petite application personnelle, j'aurais besoin
> de supprimer une ligne dans un fichier texte lorsque cette ligne
> contient le mot "blabla".
> J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une classe
> CFile (de Yanick Lefebvre) qui permet de faire ça.
>
> Ca marche bien sauf que ca me rajoute des lignes supplémentaires à la
> fin du fichier texte.
> Est-ce que quelqu'un aurait une idée. Voici mon code :
>
> Dim f As CFile
> Dim i As Long
> Dim s As String
> Set f = New CFile
>
> f.ReadFile "c:test.txt"
>
> For i = 0 To f.LineCount
> s = f.Lines(i)
> If Left(s, 6) = "blabla" Then
> s = ""
> f.SetLine i, s
> End If
> Next i
> f.SaveFile
>
> Je me trompe peut-être quelque part mais où ?
>
> Merci de votre aide
>
> Franck
>
>
Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une méthode
Replace ? Ainsi tu pourrais remplacer blabla par rien ! et ca serait plus
simple et sans doute plus clair.
"F. David" a écrit dans le message de
news:
> Bonjour,
>
> Pour les besoins d'une petite application personnelle, j'aurais besoin
> de supprimer une ligne dans un fichier texte lorsque cette ligne
> contient le mot "blabla".
> J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une classe
> CFile (de Yanick Lefebvre) qui permet de faire ça.
>
> Ca marche bien sauf que ca me rajoute des lignes supplémentaires à la
> fin du fichier texte.
> Est-ce que quelqu'un aurait une idée. Voici mon code :
>
> Dim f As CFile
> Dim i As Long
> Dim s As String
> Set f = New CFile
>
> f.ReadFile "c:test.txt"
>
> For i = 0 To f.LineCount
> s = f.Lines(i)
> If Left(s, 6) = "blabla" Then
> s = ""
> f.SetLine i, s
> End If
> Next i
> f.SaveFile
>
> Je me trompe peut-être quelque part mais où ?
>
> Merci de votre aide
>
> Franck
>
>
Birarre, je viens de refaire un essai et cette fois-ci, ca me rajoute
juste "e 9" mais 2 lignes en dessous de la ligne9.
Puis un 3eme essai et ca me rajoute, juste un 9 cette fois-ci 3 ligne en
dessous de la ligne 9
Si je fais un 4eme essai, ca devrait être bon ;-)
Comment se fait-ce ? ;-)
Franck
F. David wrote:
> Merci beaucoup mais ce bout de code associé à la dernière version de
> la classe CFile donne cela chez moi :
>
> ligne 1
> ligne 2
> ligne 3
> ligne 4
> ligne 6
> ligne 7
> ligne 8
> ligne 9
>
> gne 9
>
> La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
> ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
> La ca va, c'est pas grand chose mais comme le véritable fichier sur
> lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
> doit être énorme.
> Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais je
> trouve cette façon de procéder bien meilleure. Dommage qu'il y ait ce
> 'gne9' à la fin ;-)
>
> Franck
>
>
> Zoury wrote:
>> Salut Simon! :O)
>>
>> La dernière version de CFile comprend une fonction ReplaceText.. le
>> problème est toutefois le même que celui mentionné dans mon autre
>> message, on se retrouve avec 2 vbNewLine de suite.. on peut toutefois
>> résoudre ce problème de cette façon :
>>
>> text.txt :
>> ligne 1
>> ligne 2
>> ligne 3
>> ligne 4
>> ligne 5
>> ligne 6
>> ligne 7
>> ligne 8
>> ligne 9
>>
>> '***
>> Option Explicit
>>
>> Private Sub Form_Load()
>> Dim f As CFile
>> Dim i As Long
>>
>> Set f = New CFile
>> Call f.OpenFile("c:test.txt")
>>
>> Call f.ReplaceText("ligne 5" & vbNewLine, "")
>> Debug.Print f.Text
>>
>> End Sub
>> '***
>>
>> Résultat :
>> ligne 1
>> ligne 2
>> ligne 3
>> ligne 4
>> ligne 6
>> ligne 7
>> ligne 8
>> ligne 9
>>
>> Et je crois que c'est plus rapide que la solution mentionnée dans mon
>> message précédent.
>>
>>
>> Merci de poster les réponses au groupe afin d'en faire profiter à
>> tous "Bismark Prods" wrote in message
>> news:
>>> Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
>>> méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
>>> ca serait plus simple et sans doute plus clair.
>>>
>>>
>>> "F. David" a écrit dans le message de
>>> news:
>>>> Bonjour,
>>>>
>>>> Pour les besoins d'une petite application personnelle, j'aurais
>>>> besoin de supprimer une ligne dans un fichier texte lorsque cette
>>>> ligne contient le mot "blabla".
>>>> J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
>>>> classe CFile (de Yanick Lefebvre) qui permet de faire ça.
>>>>
>>>> Ca marche bien sauf que ca me rajoute des lignes supplémentaires à
>>>> la fin du fichier texte.
>>>> Est-ce que quelqu'un aurait une idée. Voici mon code :
>>>>
>>>> Dim f As CFile
>>>> Dim i As Long
>>>> Dim s As String
>>>> Set f = New CFile
>>>>
>>>> f.ReadFile "c:test.txt"
>>>>
>>>> For i = 0 To f.LineCount
>>>> s = f.Lines(i)
>>>> If Left(s, 6) = "blabla" Then
>>>> s = ""
>>>> f.SetLine i, s
>>>> End If
>>>> Next i
>>>> f.SaveFile
>>>>
>>>> Je me trompe peut-être quelque part mais où ?
>>>>
>>>> Merci de votre aide
>>>>
>>>> Franck
Birarre, je viens de refaire un essai et cette fois-ci, ca me rajoute
juste "e 9" mais 2 lignes en dessous de la ligne9.
Puis un 3eme essai et ca me rajoute, juste un 9 cette fois-ci 3 ligne en
dessous de la ligne 9
Si je fais un 4eme essai, ca devrait être bon ;-)
Comment se fait-ce ? ;-)
Franck
F. David wrote:
> Merci beaucoup mais ce bout de code associé à la dernière version de
> la classe CFile donne cela chez moi :
>
> ligne 1
> ligne 2
> ligne 3
> ligne 4
> ligne 6
> ligne 7
> ligne 8
> ligne 9
>
> gne 9
>
> La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
> ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
> La ca va, c'est pas grand chose mais comme le véritable fichier sur
> lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
> doit être énorme.
> Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais je
> trouve cette façon de procéder bien meilleure. Dommage qu'il y ait ce
> 'gne9' à la fin ;-)
>
> Franck
>
>
> Zoury wrote:
>> Salut Simon! :O)
>>
>> La dernière version de CFile comprend une fonction ReplaceText.. le
>> problème est toutefois le même que celui mentionné dans mon autre
>> message, on se retrouve avec 2 vbNewLine de suite.. on peut toutefois
>> résoudre ce problème de cette façon :
>>
>> text.txt :
>> ligne 1
>> ligne 2
>> ligne 3
>> ligne 4
>> ligne 5
>> ligne 6
>> ligne 7
>> ligne 8
>> ligne 9
>>
>> '***
>> Option Explicit
>>
>> Private Sub Form_Load()
>> Dim f As CFile
>> Dim i As Long
>>
>> Set f = New CFile
>> Call f.OpenFile("c:test.txt")
>>
>> Call f.ReplaceText("ligne 5" & vbNewLine, "")
>> Debug.Print f.Text
>>
>> End Sub
>> '***
>>
>> Résultat :
>> ligne 1
>> ligne 2
>> ligne 3
>> ligne 4
>> ligne 6
>> ligne 7
>> ligne 8
>> ligne 9
>>
>> Et je crois que c'est plus rapide que la solution mentionnée dans mon
>> message précédent.
>>
>>
>> Merci de poster les réponses au groupe afin d'en faire profiter à
>> tous "Bismark Prods" <no_xanaia@urbanet.ch_spam> wrote in message
>> news:eDJz43MtDHA.3496@TK2MSFTNGP11.phx.gbl...
>>> Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
>>> méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
>>> ca serait plus simple et sans doute plus clair.
>>>
>>>
>>> "F. David" <franck.dh@alussinan.org> a écrit dans le message de
>>> news:uUEg1tMtDHA.1764@TK2MSFTNGP10.phx.gbl...
>>>> Bonjour,
>>>>
>>>> Pour les besoins d'une petite application personnelle, j'aurais
>>>> besoin de supprimer une ligne dans un fichier texte lorsque cette
>>>> ligne contient le mot "blabla".
>>>> J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
>>>> classe CFile (de Yanick Lefebvre) qui permet de faire ça.
>>>>
>>>> Ca marche bien sauf que ca me rajoute des lignes supplémentaires à
>>>> la fin du fichier texte.
>>>> Est-ce que quelqu'un aurait une idée. Voici mon code :
>>>>
>>>> Dim f As CFile
>>>> Dim i As Long
>>>> Dim s As String
>>>> Set f = New CFile
>>>>
>>>> f.ReadFile "c:test.txt"
>>>>
>>>> For i = 0 To f.LineCount
>>>> s = f.Lines(i)
>>>> If Left(s, 6) = "blabla" Then
>>>> s = ""
>>>> f.SetLine i, s
>>>> End If
>>>> Next i
>>>> f.SaveFile
>>>>
>>>> Je me trompe peut-être quelque part mais où ?
>>>>
>>>> Merci de votre aide
>>>>
>>>> Franck
Birarre, je viens de refaire un essai et cette fois-ci, ca me rajoute
juste "e 9" mais 2 lignes en dessous de la ligne9.
Puis un 3eme essai et ca me rajoute, juste un 9 cette fois-ci 3 ligne en
dessous de la ligne 9
Si je fais un 4eme essai, ca devrait être bon ;-)
Comment se fait-ce ? ;-)
Franck
F. David wrote:
> Merci beaucoup mais ce bout de code associé à la dernière version de
> la classe CFile donne cela chez moi :
>
> ligne 1
> ligne 2
> ligne 3
> ligne 4
> ligne 6
> ligne 7
> ligne 8
> ligne 9
>
> gne 9
>
> La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
> ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
> La ca va, c'est pas grand chose mais comme le véritable fichier sur
> lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
> doit être énorme.
> Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais je
> trouve cette façon de procéder bien meilleure. Dommage qu'il y ait ce
> 'gne9' à la fin ;-)
>
> Franck
>
>
> Zoury wrote:
>> Salut Simon! :O)
>>
>> La dernière version de CFile comprend une fonction ReplaceText.. le
>> problème est toutefois le même que celui mentionné dans mon autre
>> message, on se retrouve avec 2 vbNewLine de suite.. on peut toutefois
>> résoudre ce problème de cette façon :
>>
>> text.txt :
>> ligne 1
>> ligne 2
>> ligne 3
>> ligne 4
>> ligne 5
>> ligne 6
>> ligne 7
>> ligne 8
>> ligne 9
>>
>> '***
>> Option Explicit
>>
>> Private Sub Form_Load()
>> Dim f As CFile
>> Dim i As Long
>>
>> Set f = New CFile
>> Call f.OpenFile("c:test.txt")
>>
>> Call f.ReplaceText("ligne 5" & vbNewLine, "")
>> Debug.Print f.Text
>>
>> End Sub
>> '***
>>
>> Résultat :
>> ligne 1
>> ligne 2
>> ligne 3
>> ligne 4
>> ligne 6
>> ligne 7
>> ligne 8
>> ligne 9
>>
>> Et je crois que c'est plus rapide que la solution mentionnée dans mon
>> message précédent.
>>
>>
>> Merci de poster les réponses au groupe afin d'en faire profiter à
>> tous "Bismark Prods" wrote in message
>> news:
>>> Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
>>> méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
>>> ca serait plus simple et sans doute plus clair.
>>>
>>>
>>> "F. David" a écrit dans le message de
>>> news:
>>>> Bonjour,
>>>>
>>>> Pour les besoins d'une petite application personnelle, j'aurais
>>>> besoin de supprimer une ligne dans un fichier texte lorsque cette
>>>> ligne contient le mot "blabla".
>>>> J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
>>>> classe CFile (de Yanick Lefebvre) qui permet de faire ça.
>>>>
>>>> Ca marche bien sauf que ca me rajoute des lignes supplémentaires à
>>>> la fin du fichier texte.
>>>> Est-ce que quelqu'un aurait une idée. Voici mon code :
>>>>
>>>> Dim f As CFile
>>>> Dim i As Long
>>>> Dim s As String
>>>> Set f = New CFile
>>>>
>>>> f.ReadFile "c:test.txt"
>>>>
>>>> For i = 0 To f.LineCount
>>>> s = f.Lines(i)
>>>> If Left(s, 6) = "blabla" Then
>>>> s = ""
>>>> f.SetLine i, s
>>>> End If
>>>> Next i
>>>> f.SaveFile
>>>>
>>>> Je me trompe peut-être quelque part mais où ?
>>>>
>>>> Merci de votre aide
>>>>
>>>> Franck
Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut toutefois
résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans mon
message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Bismark Prods" wrote in message
news:Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" a écrit dans le message de
news:Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une classe
CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires à
la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut toutefois
résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans mon
message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Bismark Prods" <no_xanaia@urbanet.ch_spam> wrote in message
news:eDJz43MtDHA.3496@TK2MSFTNGP11.phx.gbl...
Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" <franck.dh@alussinan.org> a écrit dans le message de
news:uUEg1tMtDHA.1764@TK2MSFTNGP10.phx.gbl...
Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une classe
CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires à
la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut toutefois
résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans mon
message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"Bismark Prods" wrote in message
news:Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" a écrit dans le message de
news:Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une classe
CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires à
la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
Merci beaucoup mais ce bout de code associé à la dernière version de
la classe CFile donne cela chez moi :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
gne 9
La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
La ca va, c'est pas grand chose mais comme le véritable fichier sur
lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
doit être énorme.
Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais je
trouve cette façon de procéder bien meilleure. Dommage qu'il y ait ce
'gne9' à la fin ;-)
Franck
Zoury wrote:Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut toutefois
résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans mon
message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à
tous "Bismark Prods" wrote in message
news:Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" a écrit dans le message de
news:Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
classe CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires à
la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
Merci beaucoup mais ce bout de code associé à la dernière version de
la classe CFile donne cela chez moi :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
gne 9
La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
La ca va, c'est pas grand chose mais comme le véritable fichier sur
lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
doit être énorme.
Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais je
trouve cette façon de procéder bien meilleure. Dommage qu'il y ait ce
'gne9' à la fin ;-)
Franck
Zoury wrote:
Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut toutefois
résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans mon
message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à
tous "Bismark Prods" <no_xanaia@urbanet.ch_spam> wrote in message
news:eDJz43MtDHA.3496@TK2MSFTNGP11.phx.gbl...
Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" <franck.dh@alussinan.org> a écrit dans le message de
news:uUEg1tMtDHA.1764@TK2MSFTNGP10.phx.gbl...
Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
classe CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires à
la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
Merci beaucoup mais ce bout de code associé à la dernière version de
la classe CFile donne cela chez moi :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
gne 9
La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
La ca va, c'est pas grand chose mais comme le véritable fichier sur
lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
doit être énorme.
Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais je
trouve cette façon de procéder bien meilleure. Dommage qu'il y ait ce
'gne9' à la fin ;-)
Franck
Zoury wrote:Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut toutefois
résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans mon
message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à
tous "Bismark Prods" wrote in message
news:Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" a écrit dans le message de
news:Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
classe CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires à
la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
hummm... t'as été chercher la toute dernière version?
*ici* le résultat final dans le fichier est la dernière ligne qui se
répète. ce qui est causé par le fait que le contenu est écrasé le
nouveau texte. Ce dernier possèdant une ligne de moins que le
précédant donne l'impression que le dernière se répète..
pour palier à ce bug, il faut supprimer le fichier dans la fonction
SaveFile() avant de le recréer...
'***
Public Sub SaveFile()
Dim hFile As Integer ' Handle du fichier
Dim sText As String ' Contenu du fichier
' Sort si aucun nom de fichier n'est spéficier
If LenB(m_sFile) = 0 Then
Exit Sub
End If
' Supprimer le fichier
Call Kill(m_sFile)
' Réduit le tableau et obtient le texte
If m_lIndex > -1 Then
ReDim Preserve m_sLignes(m_lIndex) As String
sText = Join(m_sLignes, vbNewLine)
End If
hFile = FreeFile
Open m_sFile For Binary As #hFile
Put #hFile, , sText
Close #hFile
End Sub
'***
si tu n'as pas encore télécharger le code le plus récent de la classe
(le lien se trouve dans mon premier message), essai le (incluant la
modification ci-haut) et dis moi si c'est correct.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"F. David" wrote in message
news:eZ$Birarre, je viens de refaire un essai et cette fois-ci, ca me rajoute
juste "e 9" mais 2 lignes en dessous de la ligne9.
Puis un 3eme essai et ca me rajoute, juste un 9 cette fois-ci 3
ligne en dessous de la ligne 9
Si je fais un 4eme essai, ca devrait être bon ;-)
Comment se fait-ce ? ;-)
Franck
F. David wrote:Merci beaucoup mais ce bout de code associé à la dernière version de
la classe CFile donne cela chez moi :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
gne 9
La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
La ca va, c'est pas grand chose mais comme le véritable fichier sur
lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
doit être énorme.
Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais
je trouve cette façon de procéder bien meilleure. Dommage qu'il y
ait ce 'gne9' à la fin ;-)
Franck
Zoury wrote:Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut
toutefois résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans
mon message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à
tous "Bismark Prods" wrote in message
news:Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" a écrit dans le message de
news:Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
classe CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires
à la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
hummm... t'as été chercher la toute dernière version?
*ici* le résultat final dans le fichier est la dernière ligne qui se
répète. ce qui est causé par le fait que le contenu est écrasé le
nouveau texte. Ce dernier possèdant une ligne de moins que le
précédant donne l'impression que le dernière se répète..
pour palier à ce bug, il faut supprimer le fichier dans la fonction
SaveFile() avant de le recréer...
'***
Public Sub SaveFile()
Dim hFile As Integer ' Handle du fichier
Dim sText As String ' Contenu du fichier
' Sort si aucun nom de fichier n'est spéficier
If LenB(m_sFile) = 0 Then
Exit Sub
End If
' Supprimer le fichier
Call Kill(m_sFile)
' Réduit le tableau et obtient le texte
If m_lIndex > -1 Then
ReDim Preserve m_sLignes(m_lIndex) As String
sText = Join(m_sLignes, vbNewLine)
End If
hFile = FreeFile
Open m_sFile For Binary As #hFile
Put #hFile, , sText
Close #hFile
End Sub
'***
si tu n'as pas encore télécharger le code le plus récent de la classe
(le lien se trouve dans mon premier message), essai le (incluant la
modification ci-haut) et dis moi si c'est correct.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"F. David" <franck.dh@alussinan.org> wrote in message
news:eZ$XxIRtDHA.2304@tk2msftngp13.phx.gbl...
Birarre, je viens de refaire un essai et cette fois-ci, ca me rajoute
juste "e 9" mais 2 lignes en dessous de la ligne9.
Puis un 3eme essai et ca me rajoute, juste un 9 cette fois-ci 3
ligne en dessous de la ligne 9
Si je fais un 4eme essai, ca devrait être bon ;-)
Comment se fait-ce ? ;-)
Franck
F. David wrote:
Merci beaucoup mais ce bout de code associé à la dernière version de
la classe CFile donne cela chez moi :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
gne 9
La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
La ca va, c'est pas grand chose mais comme le véritable fichier sur
lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
doit être énorme.
Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais
je trouve cette façon de procéder bien meilleure. Dommage qu'il y
ait ce 'gne9' à la fin ;-)
Franck
Zoury wrote:
Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut
toutefois résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans
mon message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à
tous "Bismark Prods" <no_xanaia@urbanet.ch_spam> wrote in message
news:eDJz43MtDHA.3496@TK2MSFTNGP11.phx.gbl...
Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" <franck.dh@alussinan.org> a écrit dans le message de
news:uUEg1tMtDHA.1764@TK2MSFTNGP10.phx.gbl...
Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
classe CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires
à la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
hummm... t'as été chercher la toute dernière version?
*ici* le résultat final dans le fichier est la dernière ligne qui se
répète. ce qui est causé par le fait que le contenu est écrasé le
nouveau texte. Ce dernier possèdant une ligne de moins que le
précédant donne l'impression que le dernière se répète..
pour palier à ce bug, il faut supprimer le fichier dans la fonction
SaveFile() avant de le recréer...
'***
Public Sub SaveFile()
Dim hFile As Integer ' Handle du fichier
Dim sText As String ' Contenu du fichier
' Sort si aucun nom de fichier n'est spéficier
If LenB(m_sFile) = 0 Then
Exit Sub
End If
' Supprimer le fichier
Call Kill(m_sFile)
' Réduit le tableau et obtient le texte
If m_lIndex > -1 Then
ReDim Preserve m_sLignes(m_lIndex) As String
sText = Join(m_sLignes, vbNewLine)
End If
hFile = FreeFile
Open m_sFile For Binary As #hFile
Put #hFile, , sText
Close #hFile
End Sub
'***
si tu n'as pas encore télécharger le code le plus récent de la classe
(le lien se trouve dans mon premier message), essai le (incluant la
modification ci-haut) et dis moi si c'est correct.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"F. David" wrote in message
news:eZ$Birarre, je viens de refaire un essai et cette fois-ci, ca me rajoute
juste "e 9" mais 2 lignes en dessous de la ligne9.
Puis un 3eme essai et ca me rajoute, juste un 9 cette fois-ci 3
ligne en dessous de la ligne 9
Si je fais un 4eme essai, ca devrait être bon ;-)
Comment se fait-ce ? ;-)
Franck
F. David wrote:Merci beaucoup mais ce bout de code associé à la dernière version de
la classe CFile donne cela chez moi :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
gne 9
La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
La ca va, c'est pas grand chose mais comme le véritable fichier sur
lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
doit être énorme.
Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais
je trouve cette façon de procéder bien meilleure. Dommage qu'il y
ait ce 'gne9' à la fin ;-)
Franck
Zoury wrote:Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut
toutefois résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans
mon message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à
tous "Bismark Prods" wrote in message
news:Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" a écrit dans le message de
news:Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
classe CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires
à la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
hummm... t'as été chercher la toute dernière version?
hummm... t'as été chercher la toute dernière version?
hummm... t'as été chercher la toute dernière version?
hummm... t'as été chercher la toute dernière version?
*ici* le résultat final dans le fichier est la dernière ligne qui se
répète. ce qui est causé par le fait que le contenu est écrasé le
nouveau texte. Ce dernier possèdant une ligne de moins que le
précédant donne l'impression que le dernière se répète..
pour palier à ce bug, il faut supprimer le fichier dans la fonction
SaveFile() avant de le recréer...
'***
Public Sub SaveFile()
Dim hFile As Integer ' Handle du fichier
Dim sText As String ' Contenu du fichier
' Sort si aucun nom de fichier n'est spéficier
If LenB(m_sFile) = 0 Then
Exit Sub
End If
' Supprimer le fichier
Call Kill(m_sFile)
' Réduit le tableau et obtient le texte
If m_lIndex > -1 Then
ReDim Preserve m_sLignes(m_lIndex) As String
sText = Join(m_sLignes, vbNewLine)
End If
hFile = FreeFile
Open m_sFile For Binary As #hFile
Put #hFile, , sText
Close #hFile
End Sub
'***
si tu n'as pas encore télécharger le code le plus récent de la classe
(le lien se trouve dans mon premier message), essai le (incluant la
modification ci-haut) et dis moi si c'est correct.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"F. David" wrote in message
news:eZ$Birarre, je viens de refaire un essai et cette fois-ci, ca me rajoute
juste "e 9" mais 2 lignes en dessous de la ligne9.
Puis un 3eme essai et ca me rajoute, juste un 9 cette fois-ci 3
ligne en dessous de la ligne 9
Si je fais un 4eme essai, ca devrait être bon ;-)
Comment se fait-ce ? ;-)
Franck
F. David wrote:Merci beaucoup mais ce bout de code associé à la dernière version de
la classe CFile donne cela chez moi :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
gne 9
La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
La ca va, c'est pas grand chose mais comme le véritable fichier sur
lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
doit être énorme.
Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais
je trouve cette façon de procéder bien meilleure. Dommage qu'il y
ait ce 'gne9' à la fin ;-)
Franck
Zoury wrote:Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut
toutefois résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans
mon message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à
tous "Bismark Prods" wrote in message
news:Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" a écrit dans le message de
news:Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
classe CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires
à la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
hummm... t'as été chercher la toute dernière version?
*ici* le résultat final dans le fichier est la dernière ligne qui se
répète. ce qui est causé par le fait que le contenu est écrasé le
nouveau texte. Ce dernier possèdant une ligne de moins que le
précédant donne l'impression que le dernière se répète..
pour palier à ce bug, il faut supprimer le fichier dans la fonction
SaveFile() avant de le recréer...
'***
Public Sub SaveFile()
Dim hFile As Integer ' Handle du fichier
Dim sText As String ' Contenu du fichier
' Sort si aucun nom de fichier n'est spéficier
If LenB(m_sFile) = 0 Then
Exit Sub
End If
' Supprimer le fichier
Call Kill(m_sFile)
' Réduit le tableau et obtient le texte
If m_lIndex > -1 Then
ReDim Preserve m_sLignes(m_lIndex) As String
sText = Join(m_sLignes, vbNewLine)
End If
hFile = FreeFile
Open m_sFile For Binary As #hFile
Put #hFile, , sText
Close #hFile
End Sub
'***
si tu n'as pas encore télécharger le code le plus récent de la classe
(le lien se trouve dans mon premier message), essai le (incluant la
modification ci-haut) et dis moi si c'est correct.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"F. David" <franck.dh@alussinan.org> wrote in message
news:eZ$XxIRtDHA.2304@tk2msftngp13.phx.gbl...
Birarre, je viens de refaire un essai et cette fois-ci, ca me rajoute
juste "e 9" mais 2 lignes en dessous de la ligne9.
Puis un 3eme essai et ca me rajoute, juste un 9 cette fois-ci 3
ligne en dessous de la ligne 9
Si je fais un 4eme essai, ca devrait être bon ;-)
Comment se fait-ce ? ;-)
Franck
F. David wrote:
Merci beaucoup mais ce bout de code associé à la dernière version de
la classe CFile donne cela chez moi :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
gne 9
La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
La ca va, c'est pas grand chose mais comme le véritable fichier sur
lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
doit être énorme.
Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais
je trouve cette façon de procéder bien meilleure. Dommage qu'il y
ait ce 'gne9' à la fin ;-)
Franck
Zoury wrote:
Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut
toutefois résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans
mon message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à
tous "Bismark Prods" <no_xanaia@urbanet.ch_spam> wrote in message
news:eDJz43MtDHA.3496@TK2MSFTNGP11.phx.gbl...
Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" <franck.dh@alussinan.org> a écrit dans le message de
news:uUEg1tMtDHA.1764@TK2MSFTNGP10.phx.gbl...
Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
classe CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires
à la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck
hummm... t'as été chercher la toute dernière version?
*ici* le résultat final dans le fichier est la dernière ligne qui se
répète. ce qui est causé par le fait que le contenu est écrasé le
nouveau texte. Ce dernier possèdant une ligne de moins que le
précédant donne l'impression que le dernière se répète..
pour palier à ce bug, il faut supprimer le fichier dans la fonction
SaveFile() avant de le recréer...
'***
Public Sub SaveFile()
Dim hFile As Integer ' Handle du fichier
Dim sText As String ' Contenu du fichier
' Sort si aucun nom de fichier n'est spéficier
If LenB(m_sFile) = 0 Then
Exit Sub
End If
' Supprimer le fichier
Call Kill(m_sFile)
' Réduit le tableau et obtient le texte
If m_lIndex > -1 Then
ReDim Preserve m_sLignes(m_lIndex) As String
sText = Join(m_sLignes, vbNewLine)
End If
hFile = FreeFile
Open m_sFile For Binary As #hFile
Put #hFile, , sText
Close #hFile
End Sub
'***
si tu n'as pas encore télécharger le code le plus récent de la classe
(le lien se trouve dans mon premier message), essai le (incluant la
modification ci-haut) et dis moi si c'est correct.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
"F. David" wrote in message
news:eZ$Birarre, je viens de refaire un essai et cette fois-ci, ca me rajoute
juste "e 9" mais 2 lignes en dessous de la ligne9.
Puis un 3eme essai et ca me rajoute, juste un 9 cette fois-ci 3
ligne en dessous de la ligne 9
Si je fais un 4eme essai, ca devrait être bon ;-)
Comment se fait-ce ? ;-)
Franck
F. David wrote:Merci beaucoup mais ce bout de code associé à la dernière version de
la classe CFile donne cela chez moi :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
gne 9
La ligne 5 est bien supprimée. Excellent ! En plus il n'y a pas de
ligne vide mais il y a ce "gne 9" qui se rajoute à la fin.
La ca va, c'est pas grand chose mais comme le véritable fichier sur
lequel je bosse fait près de 10000 lignes, le bout de texte rajouté
doit être énorme.
Sinon, je n'ai pas encore testé l'autre méthode. Je vais voir mais
je trouve cette façon de procéder bien meilleure. Dommage qu'il y
ait ce 'gne9' à la fin ;-)
Franck
Zoury wrote:Salut Simon! :O)
La dernière version de CFile comprend une fonction ReplaceText.. le
problème est toutefois le même que celui mentionné dans mon autre
message, on se retrouve avec 2 vbNewLine de suite.. on peut
toutefois résoudre ce problème de cette façon :
text.txt :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 5
ligne 6
ligne 7
ligne 8
ligne 9
'***
Option Explicit
Private Sub Form_Load()
Dim f As CFile
Dim i As Long
Set f = New CFile
Call f.OpenFile("c:test.txt")
Call f.ReplaceText("ligne 5" & vbNewLine, "")
Debug.Print f.Text
End Sub
'***
Résultat :
ligne 1
ligne 2
ligne 3
ligne 4
ligne 6
ligne 7
ligne 8
ligne 9
Et je crois que c'est plus rapide que la solution mentionnée dans
mon message précédent.
Merci de poster les réponses au groupe afin d'en faire profiter à
tous "Bismark Prods" wrote in message
news:Pourquoi tu ne retouche pas la classe CFile pour y adjoindre une
méthode Replace ? Ainsi tu pourrais remplacer blabla par rien ! et
ca serait plus simple et sans doute plus clair.
"F. David" a écrit dans le message de
news:Bonjour,
Pour les besoins d'une petite application personnelle, j'aurais
besoin de supprimer une ligne dans un fichier texte lorsque cette
ligne contient le mot "blabla".
J'ai jeté un coup d'oeil dans les archives et j'ai trouvé une
classe CFile (de Yanick Lefebvre) qui permet de faire ça.
Ca marche bien sauf que ca me rajoute des lignes supplémentaires
à la fin du fichier texte.
Est-ce que quelqu'un aurait une idée. Voici mon code :
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
f.ReadFile "c:test.txt"
For i = 0 To f.LineCount
s = f.Lines(i)
If Left(s, 6) = "blabla" Then
s = ""
f.SetLine i, s
End If
Next i
f.SaveFile
Je me trompe peut-être quelque part mais où ?
Merci de votre aide
Franck