> Merci de t'être penché sur la question. Finalement, j'ai l'impression
que ça complique les choses.
As-tu testé ? Car chez moi, ça m'efface l'intégralité des lignes. J'ai
un fichier vide.
Dans la classe, j'ai rajouté
dim m_lLastIndex As Long car c'était pas défini.
> Merci de t'être penché sur la question. Finalement, j'ai l'impression
que ça complique les choses.
As-tu testé ? Car chez moi, ça m'efface l'intégralité des lignes. J'ai
un fichier vide.
Dans la classe, j'ai rajouté
dim m_lLastIndex As Long car c'était pas défini.
> Merci de t'être penché sur la question. Finalement, j'ai l'impression
que ça complique les choses.
As-tu testé ? Car chez moi, ça m'efface l'intégralité des lignes. J'ai
un fichier vide.
Dans la classe, j'ai rajouté
dim m_lLastIndex As Long car c'était pas défini.
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
Call f.SaveFile
End Sub
'***
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
Call f.SaveFile
End Sub
'***
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
Call f.SaveFile
End Sub
'***
Merci de t'être penché sur la question. Finalement, j'ai l'impression
que ça complique les choses.
As-tu testé ? Car chez moi, ça m'efface l'intégralité des lignes.
J'ai un fichier vide.
oui... mais lit la suite
Dans la classe, j'ai rajouté
dim m_lLastIndex As Long car c'était pas défini.
c'est mon erreur.. m_lLastIndex est en fait m_lIndex qui a changé de
nom..
prend cette classe-ci (qui est officiellement la dernière version)
Merci de t'être penché sur la question. Finalement, j'ai l'impression
que ça complique les choses.
As-tu testé ? Car chez moi, ça m'efface l'intégralité des lignes.
J'ai un fichier vide.
oui... mais lit la suite
Dans la classe, j'ai rajouté
dim m_lLastIndex As Long car c'était pas défini.
c'est mon erreur.. m_lLastIndex est en fait m_lIndex qui a changé de
nom..
prend cette classe-ci (qui est officiellement la dernière version)
Merci de t'être penché sur la question. Finalement, j'ai l'impression
que ça complique les choses.
As-tu testé ? Car chez moi, ça m'efface l'intégralité des lignes.
J'ai un fichier vide.
oui... mais lit la suite
Dans la classe, j'ai rajouté
dim m_lLastIndex As Long car c'était pas défini.
c'est mon erreur.. m_lLastIndex est en fait m_lIndex qui a changé de
nom..
prend cette classe-ci (qui est officiellement la dernière version)