APAGAR LINHAS REPETIDAS ENTRE 2 ARQUIVOS
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!
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!
pessoal... eu ja consigo ler as linhas... mais nao consigo apagar =/
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.
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.
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!
tem algo em menti , de como possa fazer ?
GRATO!
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
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
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
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
Citação:mude para a seguinte linha:Open "C:\comparar.txt" For Output As lol
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...
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
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
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.
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.
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
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
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
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
Tópico encerrado , respostas não são mais permitidas