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
c'est amusant ! tu te mets a faire ta classe cfile dans l'option .net ? lol
(je dis ca pour le indexof)
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news:
Ah! Ça me rassure! :O) Je ne trouvais vraiment pas où était le problème.. ;O)
Zoury
Yep! Je trouves la pluspart des noms de fonctions ou de propriétés beaucoup plus intuitif en .NET... Notament pour le IndexOf, LastIndexOf, SubString, etc... C'est un des avantages des nouvelles librairies. ;O)
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Yep! Je trouves la pluspart des noms de fonctions ou de propriétés beaucoup
plus intuitif en .NET... Notament pour le IndexOf, LastIndexOf, SubString,
etc... C'est un des avantages des nouvelles librairies. ;O)
Yep! Je trouves la pluspart des noms de fonctions ou de propriétés beaucoup plus intuitif en .NET... Notament pour le IndexOf, LastIndexOf, SubString, etc... C'est un des avantages des nouvelles librairies. ;O)
T'a fait un super boulot en tout cas sur cette classe ! je te félicite
"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message de news:%
oui j'sais.. j'comparais évidemment avec les fonctions de VB (et BASIC).
Qui
existe depuis longtemps également.. ;O)
Bismark Prods
D'après ce que j'ai compris en interne la classe CFile gère chaque ligne dans un tableau, si tel est vraiment le cas ! il me semble qu'il serait très aisé de faire une méthode genre RemoveLine qui comme son nom l'indiquera, retire une ligne complete selon critères !!!!
"F. David" a écrit dans le message de news:%
Bonjour,
Je suis entièrement d'accord. Pour moi qui n'ai pas touché une ligne de code depuis des lustres et qui m'y suis remis avant hier soir, ce genre de classe me facilite la tâche. Merci à lui de mettre cela à disposition du plus grand nombre.
Cela dit, je n'ai pas encore résolu mon petit problème complétement. En fait, vous vous en doutez, le traitement que je dois effectuer est un petit peu plus complexe. J'explique :
Dans le fichier test.txt suivant, je voudrais supprimer *à la fois* les lignes qui contiennent le mot "blabla" et le mot "blablabla"
01 blabla 02 un autre texte 03 blablabla 04 blabla 05 un autre texte 06 blablabla 07 blabla 08 un autre texte 09 blablabla 10 blabla 11 un autre texte 12 blablabla 13 blabla
pour obtenir :
02 un autre texte 05 un autre texte 08 un autre texte 11 un autre texte
Voici mon code (toujours associé à la classe CFile) :
Private Sub Command1_Click() Dim f As CFile Dim i As Long Dim s As String
Set f = New CFile Call f.OpenFile("c:test.txt") For i = 1 To f.LineCount s = f.Lines(i) If Mid(s, 4, 6) = "blabla" Or Mid(s, 4, 9) = "blablabla" Then Call f.ReplaceText(s & vbNewLine, "") End If Next i Call f.SaveFile End Sub
Voici ce que j'obtiens : 02 un autre texte 04 blabla 05 un autre texte 07 blabla 08 un autre texte 10 blabla 11 un autre texte 13 blabla
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu du "or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le résultat est identique. Y aurait-il moyen de faire fonctionner cela toujours en se servant de la classe CFile bien sûr ?
Encore merci Franck
Bismark Prods wrote: > T'a fait un super boulot en tout cas sur cette classe ! je te félicite
D'après ce que j'ai compris en interne la classe CFile gère chaque ligne
dans un tableau, si tel est vraiment le cas ! il me semble qu'il serait très
aisé de faire une méthode genre RemoveLine qui comme son nom l'indiquera,
retire une ligne complete selon critères !!!!
"F. David" <franck.dh@alussinan.org> a écrit dans le message de
news:%23RoWfaZtDHA.3436@tk2msftngp13.phx.gbl...
Bonjour,
Je suis entièrement d'accord. Pour moi qui n'ai pas touché une ligne de
code depuis des lustres et qui m'y suis remis avant hier soir, ce genre
de classe me facilite la tâche. Merci à lui de mettre cela à disposition
du plus grand nombre.
Cela dit, je n'ai pas encore résolu mon petit problème complétement. En
fait, vous vous en doutez, le traitement que je dois effectuer est un
petit peu plus complexe. J'explique :
Dans le fichier test.txt suivant, je voudrais supprimer *à la fois* les
lignes qui contiennent le mot "blabla" et le mot "blablabla"
01 blabla
02 un autre texte
03 blablabla
04 blabla
05 un autre texte
06 blablabla
07 blabla
08 un autre texte
09 blablabla
10 blabla
11 un autre texte
12 blablabla
13 blabla
pour obtenir :
02 un autre texte
05 un autre texte
08 un autre texte
11 un autre texte
Voici mon code (toujours associé à la classe CFile) :
Private Sub Command1_Click()
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
Call f.OpenFile("c:test.txt")
For i = 1 To f.LineCount
s = f.Lines(i)
If Mid(s, 4, 6) = "blabla" Or Mid(s, 4, 9) = "blablabla" Then
Call f.ReplaceText(s & vbNewLine, "")
End If
Next i
Call f.SaveFile
End Sub
Voici ce que j'obtiens :
02 un autre texte
04 blabla
05 un autre texte
07 blabla
08 un autre texte
10 blabla
11 un autre texte
13 blabla
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu du
"or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le
résultat est identique. Y aurait-il moyen de faire fonctionner cela
toujours en se servant de la classe CFile bien sûr ?
Encore merci
Franck
Bismark Prods wrote:
> T'a fait un super boulot en tout cas sur cette classe ! je te félicite
D'après ce que j'ai compris en interne la classe CFile gère chaque ligne dans un tableau, si tel est vraiment le cas ! il me semble qu'il serait très aisé de faire une méthode genre RemoveLine qui comme son nom l'indiquera, retire une ligne complete selon critères !!!!
"F. David" a écrit dans le message de news:%
Bonjour,
Je suis entièrement d'accord. Pour moi qui n'ai pas touché une ligne de code depuis des lustres et qui m'y suis remis avant hier soir, ce genre de classe me facilite la tâche. Merci à lui de mettre cela à disposition du plus grand nombre.
Cela dit, je n'ai pas encore résolu mon petit problème complétement. En fait, vous vous en doutez, le traitement que je dois effectuer est un petit peu plus complexe. J'explique :
Dans le fichier test.txt suivant, je voudrais supprimer *à la fois* les lignes qui contiennent le mot "blabla" et le mot "blablabla"
01 blabla 02 un autre texte 03 blablabla 04 blabla 05 un autre texte 06 blablabla 07 blabla 08 un autre texte 09 blablabla 10 blabla 11 un autre texte 12 blablabla 13 blabla
pour obtenir :
02 un autre texte 05 un autre texte 08 un autre texte 11 un autre texte
Voici mon code (toujours associé à la classe CFile) :
Private Sub Command1_Click() Dim f As CFile Dim i As Long Dim s As String
Set f = New CFile Call f.OpenFile("c:test.txt") For i = 1 To f.LineCount s = f.Lines(i) If Mid(s, 4, 6) = "blabla" Or Mid(s, 4, 9) = "blablabla" Then Call f.ReplaceText(s & vbNewLine, "") End If Next i Call f.SaveFile End Sub
Voici ce que j'obtiens : 02 un autre texte 04 blabla 05 un autre texte 07 blabla 08 un autre texte 10 blabla 11 un autre texte 13 blabla
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu du "or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le résultat est identique. Y aurait-il moyen de faire fonctionner cela toujours en se servant de la classe CFile bien sûr ?
Encore merci Franck
Bismark Prods wrote: > T'a fait un super boulot en tout cas sur cette classe ! je te félicite
F. David
Bonjour,
Je suis entièrement d'accord. Pour moi qui n'ai pas touché une ligne de code depuis des lustres et qui m'y suis remis avant hier soir, ce genre de classe me facilite la tâche. Merci à lui de mettre cela à disposition du plus grand nombre.
Cela dit, je n'ai pas encore résolu mon petit problème complétement. En fait, vous vous en doutez, le traitement que je dois effectuer est un petit peu plus complexe. J'explique :
Dans le fichier test.txt suivant, je voudrais supprimer *à la fois* les lignes qui contiennent le mot "blabla" et le mot "blablabla"
01 blabla 02 un autre texte 03 blablabla 04 blabla 05 un autre texte 06 blablabla 07 blabla 08 un autre texte 09 blablabla 10 blabla 11 un autre texte 12 blablabla 13 blabla
pour obtenir :
02 un autre texte 05 un autre texte 08 un autre texte 11 un autre texte
Voici mon code (toujours associé à la classe CFile) :
Private Sub Command1_Click() Dim f As CFile Dim i As Long Dim s As String
Set f = New CFile Call f.OpenFile("c:test.txt") For i = 1 To f.LineCount s = f.Lines(i) If Mid(s, 4, 6) = "blabla" Or Mid(s, 4, 9) = "blablabla" Then Call f.ReplaceText(s & vbNewLine, "") End If Next i Call f.SaveFile End Sub
Voici ce que j'obtiens : 02 un autre texte 04 blabla 05 un autre texte 07 blabla 08 un autre texte 10 blabla 11 un autre texte 13 blabla
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu du "or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le résultat est identique. Y aurait-il moyen de faire fonctionner cela toujours en se servant de la classe CFile bien sûr ?
Encore merci Franck
Bismark Prods wrote:
T'a fait un super boulot en tout cas sur cette classe ! je te félicite
Bonjour,
Je suis entièrement d'accord. Pour moi qui n'ai pas touché une ligne de
code depuis des lustres et qui m'y suis remis avant hier soir, ce genre
de classe me facilite la tâche. Merci à lui de mettre cela à disposition
du plus grand nombre.
Cela dit, je n'ai pas encore résolu mon petit problème complétement. En
fait, vous vous en doutez, le traitement que je dois effectuer est un
petit peu plus complexe. J'explique :
Dans le fichier test.txt suivant, je voudrais supprimer *à la fois* les
lignes qui contiennent le mot "blabla" et le mot "blablabla"
01 blabla
02 un autre texte
03 blablabla
04 blabla
05 un autre texte
06 blablabla
07 blabla
08 un autre texte
09 blablabla
10 blabla
11 un autre texte
12 blablabla
13 blabla
pour obtenir :
02 un autre texte
05 un autre texte
08 un autre texte
11 un autre texte
Voici mon code (toujours associé à la classe CFile) :
Private Sub Command1_Click()
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
Call f.OpenFile("c:test.txt")
For i = 1 To f.LineCount
s = f.Lines(i)
If Mid(s, 4, 6) = "blabla" Or Mid(s, 4, 9) = "blablabla" Then
Call f.ReplaceText(s & vbNewLine, "")
End If
Next i
Call f.SaveFile
End Sub
Voici ce que j'obtiens :
02 un autre texte
04 blabla
05 un autre texte
07 blabla
08 un autre texte
10 blabla
11 un autre texte
13 blabla
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu du
"or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le
résultat est identique. Y aurait-il moyen de faire fonctionner cela
toujours en se servant de la classe CFile bien sûr ?
Encore merci
Franck
Bismark Prods wrote:
T'a fait un super boulot en tout cas sur cette classe ! je te félicite
Je suis entièrement d'accord. Pour moi qui n'ai pas touché une ligne de code depuis des lustres et qui m'y suis remis avant hier soir, ce genre de classe me facilite la tâche. Merci à lui de mettre cela à disposition du plus grand nombre.
Cela dit, je n'ai pas encore résolu mon petit problème complétement. En fait, vous vous en doutez, le traitement que je dois effectuer est un petit peu plus complexe. J'explique :
Dans le fichier test.txt suivant, je voudrais supprimer *à la fois* les lignes qui contiennent le mot "blabla" et le mot "blablabla"
01 blabla 02 un autre texte 03 blablabla 04 blabla 05 un autre texte 06 blablabla 07 blabla 08 un autre texte 09 blablabla 10 blabla 11 un autre texte 12 blablabla 13 blabla
pour obtenir :
02 un autre texte 05 un autre texte 08 un autre texte 11 un autre texte
Voici mon code (toujours associé à la classe CFile) :
Private Sub Command1_Click() Dim f As CFile Dim i As Long Dim s As String
Set f = New CFile Call f.OpenFile("c:test.txt") For i = 1 To f.LineCount s = f.Lines(i) If Mid(s, 4, 6) = "blabla" Or Mid(s, 4, 9) = "blablabla" Then Call f.ReplaceText(s & vbNewLine, "") End If Next i Call f.SaveFile End Sub
Voici ce que j'obtiens : 02 un autre texte 04 blabla 05 un autre texte 07 blabla 08 un autre texte 10 blabla 11 un autre texte 13 blabla
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu du "or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le résultat est identique. Y aurait-il moyen de faire fonctionner cela toujours en se servant de la classe CFile bien sûr ?
Encore merci Franck
Bismark Prods wrote:
T'a fait un super boulot en tout cas sur cette classe ! je te félicite
F. David
Bien sûr lorsque j'enlève le 'vbNewLine', ça fonctionne mais j'obtiens des lignes vides. Je pourrais éventuellement récupérer les lignes ne contenant pas de "blabla", les stocker dans une string et réécrire le fichier mais je voudrais juste savoir s'il n'y aurait pas une autre solution ? Enfin bref, je voudrais si possible pas de blabla mais du résultat ;-) Merci
Franck
F. David wrote:
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu du "or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le résultat est identique. Y aurait-il moyen de faire fonctionner cela toujours en se servant de la classe CFile bien sûr ?
Bien sûr lorsque j'enlève le 'vbNewLine', ça fonctionne mais j'obtiens
des lignes vides. Je pourrais éventuellement récupérer les lignes ne
contenant pas de "blabla", les stocker dans une string et réécrire le
fichier mais je voudrais juste savoir s'il n'y aurait pas une autre
solution ?
Enfin bref, je voudrais si possible pas de blabla mais du résultat ;-)
Merci
Franck
F. David wrote:
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu
du "or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le
résultat est identique. Y aurait-il moyen de faire fonctionner cela
toujours en se servant de la classe CFile bien sûr ?
Bien sûr lorsque j'enlève le 'vbNewLine', ça fonctionne mais j'obtiens des lignes vides. Je pourrais éventuellement récupérer les lignes ne contenant pas de "blabla", les stocker dans une string et réécrire le fichier mais je voudrais juste savoir s'il n'y aurait pas une autre solution ? Enfin bref, je voudrais si possible pas de blabla mais du résultat ;-) Merci
Franck
F. David wrote:
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu du "or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le résultat est identique. Y aurait-il moyen de faire fonctionner cela toujours en se servant de la classe CFile bien sûr ?
F. David
De mon côté, j'avoue que je ne comprends pas tout le fonctionnement de cette classe et je ne serais pas assez calé pour faire cette méthode ;-) En fait, ça marche bien pour une suppression selon un critère mais au delà, ça coince, j'ai l'impression mais Yanick va bien nous trouver quelque chose dont il a le secret, non ? ,-)
Bismark Prods wrote:
D'après ce que j'ai compris en interne la classe CFile gère chaque ligne dans un tableau, si tel est vraiment le cas ! il me semble qu'il serait très aisé de faire une méthode genre RemoveLine qui comme son nom l'indiquera, retire une ligne complete selon critères !!!!
"F. David" a écrit dans le message de news:%
Bonjour,
Je suis entièrement d'accord. Pour moi qui n'ai pas touché une ligne de code depuis des lustres et qui m'y suis remis avant hier soir, ce genre de classe me facilite la tâche. Merci à lui de mettre cela à disposition du plus grand nombre.
Cela dit, je n'ai pas encore résolu mon petit problème complétement. En fait, vous vous en doutez, le traitement que je dois effectuer est un petit peu plus complexe. J'explique :
Dans le fichier test.txt suivant, je voudrais supprimer *à la fois* les lignes qui contiennent le mot "blabla" et le mot "blablabla"
01 blabla 02 un autre texte 03 blablabla 04 blabla 05 un autre texte 06 blablabla 07 blabla 08 un autre texte 09 blablabla 10 blabla 11 un autre texte 12 blablabla 13 blabla
pour obtenir :
02 un autre texte 05 un autre texte 08 un autre texte 11 un autre texte
Voici mon code (toujours associé à la classe CFile) :
Private Sub Command1_Click() Dim f As CFile Dim i As Long Dim s As String
Set f = New CFile Call f.OpenFile("c:test.txt") For i = 1 To f.LineCount s = f.Lines(i) If Mid(s, 4, 6) = "blabla" Or Mid(s, 4, 9) = "blablabla" Then Call f.ReplaceText(s & vbNewLine, "") End If Next i Call f.SaveFile End Sub
Voici ce que j'obtiens : 02 un autre texte 04 blabla 05 un autre texte 07 blabla 08 un autre texte 10 blabla 11 un autre texte 13 blabla
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu du "or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le résultat est identique. Y aurait-il moyen de faire fonctionner cela toujours en se servant de la classe CFile bien sûr ?
Encore merci Franck
Bismark Prods wrote:
T'a fait un super boulot en tout cas sur cette classe ! je te félicite
De mon côté, j'avoue que je ne comprends pas tout le fonctionnement de
cette classe et je ne serais pas assez calé pour faire cette méthode ;-)
En fait, ça marche bien pour une suppression selon un critère mais au
delà, ça coince, j'ai l'impression mais Yanick va bien nous trouver
quelque chose dont il a le secret, non ? ,-)
Bismark Prods wrote:
D'après ce que j'ai compris en interne la classe CFile gère chaque
ligne dans un tableau, si tel est vraiment le cas ! il me semble
qu'il serait très aisé de faire une méthode genre RemoveLine qui
comme son nom l'indiquera, retire une ligne complete selon critères
!!!!
"F. David" <franck.dh@alussinan.org> a écrit dans le message de
news:%23RoWfaZtDHA.3436@tk2msftngp13.phx.gbl...
Bonjour,
Je suis entièrement d'accord. Pour moi qui n'ai pas touché une ligne
de code depuis des lustres et qui m'y suis remis avant hier soir, ce
genre de classe me facilite la tâche. Merci à lui de mettre cela à
disposition du plus grand nombre.
Cela dit, je n'ai pas encore résolu mon petit problème complétement.
En fait, vous vous en doutez, le traitement que je dois effectuer
est un petit peu plus complexe. J'explique :
Dans le fichier test.txt suivant, je voudrais supprimer *à la fois*
les lignes qui contiennent le mot "blabla" et le mot "blablabla"
01 blabla
02 un autre texte
03 blablabla
04 blabla
05 un autre texte
06 blablabla
07 blabla
08 un autre texte
09 blablabla
10 blabla
11 un autre texte
12 blablabla
13 blabla
pour obtenir :
02 un autre texte
05 un autre texte
08 un autre texte
11 un autre texte
Voici mon code (toujours associé à la classe CFile) :
Private Sub Command1_Click()
Dim f As CFile
Dim i As Long
Dim s As String
Set f = New CFile
Call f.OpenFile("c:test.txt")
For i = 1 To f.LineCount
s = f.Lines(i)
If Mid(s, 4, 6) = "blabla" Or Mid(s, 4, 9) = "blablabla" Then
Call f.ReplaceText(s & vbNewLine, "")
End If
Next i
Call f.SaveFile
End Sub
Voici ce que j'obtiens :
02 un autre texte
04 blabla
05 un autre texte
07 blabla
08 un autre texte
10 blabla
11 un autre texte
13 blabla
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au
lieu du "or", j'ai tenté de mettre 2 fois l'opération bout à bout
mais le résultat est identique. Y aurait-il moyen de faire
fonctionner cela toujours en se servant de la classe CFile bien sûr ?
Encore merci
Franck
Bismark Prods wrote:
T'a fait un super boulot en tout cas sur cette classe ! je te
félicite
De mon côté, j'avoue que je ne comprends pas tout le fonctionnement de cette classe et je ne serais pas assez calé pour faire cette méthode ;-) En fait, ça marche bien pour une suppression selon un critère mais au delà, ça coince, j'ai l'impression mais Yanick va bien nous trouver quelque chose dont il a le secret, non ? ,-)
Bismark Prods wrote:
D'après ce que j'ai compris en interne la classe CFile gère chaque ligne dans un tableau, si tel est vraiment le cas ! il me semble qu'il serait très aisé de faire une méthode genre RemoveLine qui comme son nom l'indiquera, retire une ligne complete selon critères !!!!
"F. David" a écrit dans le message de news:%
Bonjour,
Je suis entièrement d'accord. Pour moi qui n'ai pas touché une ligne de code depuis des lustres et qui m'y suis remis avant hier soir, ce genre de classe me facilite la tâche. Merci à lui de mettre cela à disposition du plus grand nombre.
Cela dit, je n'ai pas encore résolu mon petit problème complétement. En fait, vous vous en doutez, le traitement que je dois effectuer est un petit peu plus complexe. J'explique :
Dans le fichier test.txt suivant, je voudrais supprimer *à la fois* les lignes qui contiennent le mot "blabla" et le mot "blablabla"
01 blabla 02 un autre texte 03 blablabla 04 blabla 05 un autre texte 06 blablabla 07 blabla 08 un autre texte 09 blablabla 10 blabla 11 un autre texte 12 blablabla 13 blabla
pour obtenir :
02 un autre texte 05 un autre texte 08 un autre texte 11 un autre texte
Voici mon code (toujours associé à la classe CFile) :
Private Sub Command1_Click() Dim f As CFile Dim i As Long Dim s As String
Set f = New CFile Call f.OpenFile("c:test.txt") For i = 1 To f.LineCount s = f.Lines(i) If Mid(s, 4, 6) = "blabla" Or Mid(s, 4, 9) = "blablabla" Then Call f.ReplaceText(s & vbNewLine, "") End If Next i Call f.SaveFile End Sub
Voici ce que j'obtiens : 02 un autre texte 04 blabla 05 un autre texte 07 blabla 08 un autre texte 10 blabla 11 un autre texte 13 blabla
Bizarrement, la ligne contenant "blabla" n'est pas supprimée. Au lieu du "or", j'ai tenté de mettre 2 fois l'opération bout à bout mais le résultat est identique. Y aurait-il moyen de faire fonctionner cela toujours en se servant de la classe CFile bien sûr ?
Encore merci Franck
Bismark Prods wrote:
T'a fait un super boulot en tout cas sur cette classe ! je te félicite
Zoury
Oui c'est possible.. ça fera le même travail que ma première solution.. :OP
ajoute cette fonction à la classe : '*** '************************************** ' Removes the specified line '************************************** Public Sub RemoveLine(ByRef lIndex As Long)
Dim i As Long Dim lCurIndex As Long Dim s() As String ReDim s(UBound(m_sLignes)) As String
For i = 0 To m_lLastIndex If (i <> (lIndex - 1)) Then s(lCurIndex) = m_sLignes(i) lCurIndex = lCurIndex + 1 End If Next i
m_lLastIndex = m_lLastIndex - 1 m_sLignes = s
End Sub '***
tu peux l'utiliser comme ceci : '*** Option Explicit
Private Sub Main()
Dim i As Long Dim f As CFile Set f = New CFile
Call f.OpenFile("c:test.txt")
' On doit faire une boucle inversé étant donnée ' que le contenu de f peut changer à chaque tour For i = f.LineCount To 1 Step -1 If (f.Lines(i) Like "*blabla" Or f.Lines(i) Like "*blablabla") Then Call f.RemoveLine(i) End If Next i
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Oui c'est possible.. ça fera le même travail que ma première solution.. :OP
ajoute cette fonction à la classe :
'***
'**************************************
' Removes the specified line
'**************************************
Public Sub RemoveLine(ByRef lIndex As Long)
Dim i As Long
Dim lCurIndex As Long
Dim s() As String
ReDim s(UBound(m_sLignes)) As String
For i = 0 To m_lLastIndex
If (i <> (lIndex - 1)) Then
s(lCurIndex) = m_sLignes(i)
lCurIndex = lCurIndex + 1
End If
Next i
m_lLastIndex = m_lLastIndex - 1
m_sLignes = s
End Sub
'***
tu peux l'utiliser comme ceci :
'***
Option Explicit
Private Sub Main()
Dim i As Long
Dim f As CFile
Set f = New CFile
Call f.OpenFile("c:test.txt")
' On doit faire une boucle inversé étant donnée
' que le contenu de f peut changer à chaque tour
For i = f.LineCount To 1 Step -1
If (f.Lines(i) Like "*blabla" Or f.Lines(i) Like "*blablabla") Then
Call f.RemoveLine(i)
End If
Next i
Oui c'est possible.. ça fera le même travail que ma première solution.. :OP
ajoute cette fonction à la classe : '*** '************************************** ' Removes the specified line '************************************** Public Sub RemoveLine(ByRef lIndex As Long)
Dim i As Long Dim lCurIndex As Long Dim s() As String ReDim s(UBound(m_sLignes)) As String
For i = 0 To m_lLastIndex If (i <> (lIndex - 1)) Then s(lCurIndex) = m_sLignes(i) lCurIndex = lCurIndex + 1 End If Next i
m_lLastIndex = m_lLastIndex - 1 m_sLignes = s
End Sub '***
tu peux l'utiliser comme ceci : '*** Option Explicit
Private Sub Main()
Dim i As Long Dim f As CFile Set f = New CFile
Call f.OpenFile("c:test.txt")
' On doit faire une boucle inversé étant donnée ' que le contenu de f peut changer à chaque tour For i = f.LineCount To 1 Step -1 If (f.Lines(i) Like "*blabla" Or f.Lines(i) Like "*blablabla") Then Call f.RemoveLine(i) End If Next i