EXCLUIR LINHA DE ARQ .TXT
Olá pessoal,
Eu tenho um arquivo txt com a seguinte estrutura
0804413701A 1960
0804413801A 1854
0804414901A 1789
0804414001A 2014
0804414101A 2004
Como eu consigo excluir a linha que contém a string 0804414901A 1789.
Obrigado pela ajuda
Eu tenho um arquivo txt com a seguinte estrutura
0804413701A 1960
0804413801A 1854
0804414901A 1789
0804414001A 2014
0804414101A 2004
Como eu consigo excluir a linha que contém a string 0804414901A 1789.
Obrigado pela ajuda
Se você utilizar o FileSystemObjects com o VB, a operação pode ser customuzada e simplificada. Segue exemplo.
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("C:\Arquivos\Texto001.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
End Function
Uso:
EliminaLinha "0804414901A 1789", "C:\Arquivos\Tabela01.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("C:\Arquivos\Texto001.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
End Function
Uso:
EliminaLinha "0804414901A 1789", "C:\Arquivos\Tabela01.txt"
Tópico encerrado , respostas não são mais permitidas