USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Apagar linhas em arquivo texto
LUIZ PEDRO
SAO PAULO
SP - BRASIL
Postada em 14/04/2008 11:45 hs            
E ai galera !
Estou com o seguinte problema, preciso que seja feita uma pesquisa em um arquivo texto de origem, quando um certo codigo é localizado ele copia esta linha para o arquivo de destino, ate ai esta tudo certo e esta funcionando, mas gostaria de apagar estas linhas localizadas no arquivo de origem depois que foram copiados para o arquivo de destino, como faço isso ?
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 14/04/2008 18:56 hs            
Faça da seguinte maneira colega:
 
coloquei o código em um botão mas você pode fazer da forma que achar melhor
 
 
Private Sub Command1_Click()
 
Dim PathName As String, LineToDelete As String
Dim f As Integer, F2 As Integer, InLine As String, FName2 As String
Dim Drive As String, Path As String, filename As String, Ext As String
' PathName é o arquivo texto que sofrerá a alteração
PathName = "c:\Teste.txt"
' FName2 cria um arquivo temporário  com a alteração efetuada
' para depois salva-lo novamente.
  FName2 = Drive & Path & Format(Time, "hhnnss") & ".TMP"
  f = FreeFile
  Open PathName For Input As #f
  F2 = FreeFile
  Open FName2 For Output As #F2
  Do While Not EOF(f)
    Line Input #f, InLine
    ' a linha LineToDelete será a linha a ser excluida
    ' a função instr procura por uma palavra nesta linha, não sendo necessário
    ' você digitar alinha inteira.
    LineToDelete = "excluida"
        If InStr(1, InLine, LineToDelete) = 0 Then
      Print #F2, InLine
    End If
  Loop
  Close #f
  Close #F2
'
' Troca o arquivo antigo pelo novo
'
  Kill PathName
  Name FName2 As PathName
End Sub
 
O código acima ira fazer o seguinte:
 
Procura por uma linha que contenha a palavra "excluida" e retirar esta do arquivo texto veja o exemplo utilizado
 
antes:
Este arquivo possui um linha que é um
lixo por isso irá ser excluida
não vou mais usa-la

depois:  

Este arquivo possui um linha que é um
não vou mais usa-la

 


veja se era isto que você queria
TÓPICO EDITADO
 
LUIZ PEDRO
SAO PAULO
SP - BRASIL
Postada em 24/04/2008 18:10 hs            
E ai Treze blz

Desculpe a demora em responder, mas estou na correria ! Valeu pela dica, fiz algumas alterações e funcionou do jeito que eu queria. Mas so fiquei em duvida neste trecho do codigo:
linetodelete = "NBT"
    If InStr(1, inline, linetodelete) = 0 Then
    Print #f2, inline
    End If
TÓPICO EDITADO
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 24/04/2008 18:13 hs            
até colega.
   
LUIZ PEDRO
SAO PAULO
SP - BRASIL
Postada em 24/04/2008 19:45 hs            
  E ai Treze blz

Desculpe a demora em responder, mas estou na correria ! Valeu pela dica, fiz algumas alterações e funcionou do jeito que eu queria. Mas so fiquei em duvida neste trecho do codigo:
linetodelete = "NBT"
    If InStr(1, inline, linetodelete) = 0 Then
    Print #f2, inline
    End If
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 24/04/2008 20:14 hs            
Não sei qual é a duvida mas vou explicar o trecho do código
 
litodelete="NBT"                              ' aqui funciona da seguinte maneira
If Instr(1,inLine,LineToDelete)=0 then ' se a linha não possuir a palavra "NBT"
Print #f2, inline                               ' ela será gravada no arquivo temporário #f2
End If 
 
Ou seja o arquivo temporário irá substituir o arquivo atual, então este trechop do código só
ira colocar as linhas que não possuirem a palavra especifica, entendeu
 
explicando de outra forma o código não apaga a linha desejada, ele apenas deixa de copia-la.
 
   
Página(s): 1/2      PRÓXIMA »

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página