COLOCAR CONTADOR EM CODIGO
Este código deleta toda linha que tenha por exemplo [Ô]01[Ô]
Estou tentando aqui colocar um contador pra saber quantas linhas foram deletadas e não estou conseguindo
Dim FSO As New FileSystemObject
Dim ArqTxt As TextStream
Dim Texto As String
Private Sub Form_Load()
Set ArqTxt = FSO.OpenTextFile(App.Path & [Ô]inho.txt[Ô], ForReading, True)
Texto = ArqTxt.ReadAll
Me.Caption = [Ô]Arquivo Possui [Ô] & Format(ArqTxt.Line, [Ô]0000[Ô]) & [Ô] Linhas[Ô]
ArqTxt.Close
End Sub
Private Sub Command1_Click()
EliminaLinha Text1.Text, App.Path & [Ô]inho.txt[Ô]
Set ArqTxt = FSO.OpenTextFile(App.Path & [Ô]inho.txt[Ô], ForReading, True)
Texto = ArqTxt.ReadAll
Me.Caption = [Ô]Arquivo Possui [Ô] & Format(ArqTxt.Line, [Ô]0000[Ô]) & [Ô] Linhas[Ô]
ArqTxt.Close
End Sub
[ô]EliminaLinha [Ô]20[Ô], App.Path & [Ô]inho.txt[Ô]
Public Sub EliminaLinha(Texto As String, Arquivo As String)
Dim oFS As FileSystemObject
Dim oTS As TextStream
Dim oTSB As TextStream
Dim sLinha As String
Dim sTemp As String
Set oFS = New FileSystemObject
sTemp = App.Path & [Ô]\[Ô] & oFS.GetTempName
If oFS.FileExists(App.Path & [Ô]inho.txt[Ô]) = True Then
Set oTS = oFS.OpenTextFile(Arquivo, ForReading)
Set oTSB = oFS.OpenTextFile(sTemp, ForWriting, True)
While Not oTS.AtEndOfStream = True
sLinha = Empty
sLinha = oTS.ReadLine
If InStr(1, sLinha, Texto, vbTextCompare) = 0 Then
oTSB.WriteLine sLinha
End If
Wend
oTSB.Close
oTS.Close
oFS.DeleteFile Arquivo
oFS.CopyFile sTemp, Arquivo, True
oFS.DeleteFile sTemp
End If
Set oFS = Nothing
Set oTS = Nothing
Set oTSB = Nothing
sLinha = Empty
sTemp = Empty
[ô]MsgBox .ReadAll
End Sub
Estou tentando aqui colocar um contador pra saber quantas linhas foram deletadas e não estou conseguindo
Dim FSO As New FileSystemObject
Dim ArqTxt As TextStream
Dim Texto As String
Private Sub Form_Load()
Set ArqTxt = FSO.OpenTextFile(App.Path & [Ô]inho.txt[Ô], ForReading, True)
Texto = ArqTxt.ReadAll
Me.Caption = [Ô]Arquivo Possui [Ô] & Format(ArqTxt.Line, [Ô]0000[Ô]) & [Ô] Linhas[Ô]
ArqTxt.Close
End Sub
Private Sub Command1_Click()
EliminaLinha Text1.Text, App.Path & [Ô]inho.txt[Ô]
Set ArqTxt = FSO.OpenTextFile(App.Path & [Ô]inho.txt[Ô], ForReading, True)
Texto = ArqTxt.ReadAll
Me.Caption = [Ô]Arquivo Possui [Ô] & Format(ArqTxt.Line, [Ô]0000[Ô]) & [Ô] Linhas[Ô]
ArqTxt.Close
End Sub
[ô]EliminaLinha [Ô]20[Ô], App.Path & [Ô]inho.txt[Ô]
Public Sub EliminaLinha(Texto As String, Arquivo As String)
Dim oFS As FileSystemObject
Dim oTS As TextStream
Dim oTSB As TextStream
Dim sLinha As String
Dim sTemp As String
Set oFS = New FileSystemObject
sTemp = App.Path & [Ô]\[Ô] & oFS.GetTempName
If oFS.FileExists(App.Path & [Ô]inho.txt[Ô]) = True Then
Set oTS = oFS.OpenTextFile(Arquivo, ForReading)
Set oTSB = oFS.OpenTextFile(sTemp, ForWriting, True)
While Not oTS.AtEndOfStream = True
sLinha = Empty
sLinha = oTS.ReadLine
If InStr(1, sLinha, Texto, vbTextCompare) = 0 Then
oTSB.WriteLine sLinha
End If
Wend
oTSB.Close
oTS.Close
oFS.DeleteFile Arquivo
oFS.CopyFile sTemp, Arquivo, True
oFS.DeleteFile sTemp
End If
Set oFS = Nothing
Set oTS = Nothing
Set oTSB = Nothing
sLinha = Empty
sTemp = Empty
[ô]MsgBox .ReadAll
End Sub
O contador deve ser incrementado com as linhas que você não copia.
Dica: A Sub EliminaLinha pode ser alterada para Function, de forma que retorne o total de linhas excluÃdas.
Dica: A Sub EliminaLinha pode ser alterada para Function, de forma que retorne o total de linhas excluÃdas.
Public Sub EliminaLinha(Texto As String, Arquivo As String)
Dim oFS As FileSystemObject
Dim oTS As TextStream
Dim oTSB As TextStream
Dim sLinha As String
Dim sTemp As String
Dim nExcluidas As Long
Set oFS = New FileSystemObject
sTemp = App.Path & [Ô]\[Ô] & oFS.GetTempName
If oFS.FileExists(App.Path & [Ô]inho.txt[Ô]) = True Then
Set oTS = oFS.OpenTextFile(Arquivo, ForReading)
Set oTSB = oFS.OpenTextFile(sTemp, ForWriting, True)
While Not oTS.AtEndOfStream = True
sLinha = Empty
sLinha = oTS.ReadLine
If InStr(1, sLinha, Texto, vbTextCompare) = 0 Then
oTSB.WriteLine sLinha
Else
nExcluidas = nExcluidas + 1
End If
Wend
oTSB.Close
oTS.Close
oFS.DeleteFile Arquivo
oFS.CopyFile sTemp, Arquivo, True
oFS.DeleteFile sTemp
End If
Set oFS = Nothing
Set oTS = Nothing
Set oTSB = Nothing
sLinha = Empty
sTemp = Empty
If (nExcluidas > 0) Then
MsgBox [Ô]Foram excluÃdas [Ô] & nExcluidas & [Ô] linhas.[Ô]
End If
End Sub
Perfeito!
Obrigado Professor.
Obrigado Professor.
Tópico encerrado , respostas não são mais permitidas