APAGAR LINHAS REPETIDAS ENTRE 2 ARQUIVOS

USUARIO.EXCLUIDOS 04/06/2007 11:45:42
#219603
tenho 2 arquivos .txt , ambos tem o mesmo padrao

gostaria de comparar um arquivo com o outro para ver quais as linhas que se repetim para que eu possa excluir. EXEMPLO:

1.txt
2.txt

conteudo 1.txt

maca
laranja
queijo
arvore
comida
almoco
fome
aff
--------------
conteudo 2.txt

laranja
arvore
almoco
--------------

gostaria de comparar o arquivo 1.txt com 2.txt para que eu possa apagar
o que esta repetido em 1.txt comparado com 2.txt

como fazer issow ??

GRATO!
USUARIO.EXCLUIDOS 04/06/2007 13:35:25
#219620
pessoal... eu ja consigo ler as linhas... mais nao consigo apagar =/
USUARIO.EXCLUIDOS 04/06/2007 13:45:13
#219623
Resposta escolhida
Apagar uma linha pelo que eu sei não dá...Vc disse que já conseguiu ler os dois arquivos, então vc pode criar um terceiro arquivo sem as repetições e depois apagar o arquivo 1.txt e renomear o novo para 1.txt.

Para criar um terceiro arquivo use:

Open "c:3.txt" For Output As #1
print #1, Linha
close #1

para apagar o arquivo use: kill "c:\1.txt"

para renomear use: name "c:\3.txt" as "c:\1.txt"

ESPERO TER AJUDADO.
USUARIO.EXCLUIDOS 04/06/2007 14:26:03
#219632
frau, sim ja consigo ler os arquivos.. mais ainda nao consegui fazer a comparacao entre eles =/

tem algo em menti , de como possa fazer ?


GRATO!
USUARIO.EXCLUIDOS 04/06/2007 15:28:36
#219666
Para comparar faça assim:

dim sLinha1 as string, sLinha2 as string

Open "c:\1.txt" For Input As #1
Open "c:\2.txt" For Input As #2
open "c:\3.txt" for output as #3

Do Until EOF(1)

Line Input #1, sLinha1
Line Input #2, sLinha2

if trim(sLinha1) <> trim(sLinha2) then 'Verifica se é diferente
print #3, sLinha1
end if

Loop

close #1:close #2:close #3
USUARIO.EXCLUIDOS 05/06/2007 10:47:49
#219793
o mais perto que consegui chegar foi issow aqui.. o teu exemplo... agiu da mesma forma que o meu .. ou seja... depois que eu abro o arquivo (aff) ele nao consegui ler o arquivo (lol) entao ele fica lendo o mesmo arquivo.. e comparado.. nunca le o comparar.txt... fica lendo somente lista.txt

aff = FreeFile
lol = FreeFile
Open "C:\lista.txt" For Input As aff

Do While Not EOF(aff)
Line Input #aff, afflinha

Open "C:\comparar.txt" For Output As lol
Do While Not EOF(lol)
Line Input #lol, lollinha

If afflinha = lollinha Then
MsgBox "aqui repeti"
End If

Loop
Close lol

Loop
Close aff
USUARIO.EXCLUIDOS 05/06/2007 10:55:31
#219795
Citação:

Open "C:\comparar.txt" For Output As lol

mude para a seguinte linha:

Open "C:\comparar.txt" For input As lol 'Input lê arquivo OutPut grava(gera) arquivo

Depois na comparação:

If afflinha <> lollinha Then
Open "C:
ovoarquivo.txt" For Output As nov
End If

Veja se dá certo...


USUARIO.EXCLUIDOS 05/06/2007 11:21:21
#219802
brown novamente a mesma coisa.. vo lhe mostrar onde acontece o problema... e nessa parte do codigo

aff = FreeFile
lol = FreeFile
Open "C:\lista.txt" For Input As aff

Do While Not EOF(aff)
Line Input #aff, afflinha

Open "C:\comparar.txt" For Input As lol
Do While Not EOF(lol)
Line Input #lol, lollinha

OBS: ele consegui ler normalmente lista.txt , colocando em afflinha o primeiro nome do arquivo lista.txt... so que na hora que eu abro o arquivo comparar.txt... em lollinha .. ele pega o segundo nome de lista.txt... ele nao consegui passar o valor do arquivo comprar.txt em lollinha... ou seja ele continua lendo lista.txt.. faca o teste se tiver como.

GRATO
USUARIO.EXCLUIDOS 05/06/2007 13:38:48
#219831
Ok...Faça as seguintes alterações:

aff = FreeFile
lol = FreeFile
Open "C:\lista.txt" For Input As #aff 'faltou o caracter sustenido

Do While Not EOF(aff)
Line Input #aff, afflinha

Open "C:\comparar.txt" For Input As #lol 'faltou o caracter sustenido
Do While Not EOF(lol)
Line Input #lol, lollinha


veja se dá certo agora.
USUARIO.EXCLUIDOS 05/06/2007 16:18:31
#219883
brown mesma coisa tinha que achar uma forma de abrir 2 arquivos independentes, porque aqui ta abrindo lista.txt e depois abro marcados.txt ... e mesma assim todos os valores sao atribuidos a lista.txt segue o codigo modificado.

aff = FreeFile
lol = FreeFile
Open "C:\lista.txt" For Input As #aff

Do While Not EOF(aff)
Line Input #aff, afflinha

Open "C:\marcados.txt" For Input As #lol
Do While Not EOF(lol)
Line Input #lol, lollinha

If afflinha = lollinha Then
MsgBox "aqui repeti"
End If

Loop
Close lol

Loop
Close aff
USUARIO.EXCLUIDOS 05/06/2007 19:51:27
#219923
Fiz uns testes aqui e deu certo usando um vetor, veja como ficou:

Dim sVetor() As String
Dim i As Integer, iTotalLinhas As Integer

aff = FreeFile
lol = FreeFile
Open "C:\1.txt" For Input As #aff
i = 0

Do While Not EOF(aff)
Line Input #aff, afflinha
i = i + 1
Loop

Close #aff

iTotalLinhas = i

ReDim sVetor(iTotalLinhas)

Open "C:\1.txt" For Input As #aff
i = 0

Do While Not EOF(aff)
Line Input #aff, afflinha
i = i + 1
sVetor(i) = afflinha
Loop

Close #aff

Open "C:\2.txt" For Input As #lol

Do While Not EOF(lol)
Line Input #lol, lollinha
For i = 1 To iTotalLinhas
If sVetor(i) = lollinha Then
MsgBox "Repeti aqui.", vbInformation
End If
Next
Loop

Close #lol

End
Página 1 de 2 [13 registro(s)]
Tópico encerrado , respostas não são mais permitidas