CONTAR E MOSTRAR LINHAS REPETIDAS EM ARQUIVO .TXT

PAYDANA 20/05/2013 22:58:15
#423787
sei fazer isto no listbox mais direto no arquivo não consigo
não posso fazer no listbox porque alguns dos arquivos passam de 40 mil linhas é no listbox parece que mau passa de 30 mil linhas

Obrigado!
VELDRAME 21/05/2013 10:20:13
#423798
Veja se te serve.
Acabei de fazer para você.
Garanto que ele lê pelo menos 400.000 linha (eu faço isso aqui)
Depois quero ver esse seu aplicativo aqui no site.
Fiquei interessado nele.


PAYDANA 21/05/2013 14:06:37
#423807
olhei aqui e parece q nao e bem isso...
pelo que entendi seu codigo ae compara 2 arquivos
o que quero aqui e um codigo que mergulhe em um .txt com milhares de linhas apanhe a primeira linha e então vasculhe todo o .txt atrás de outras linhas identicas a ela

dae em outro arquivo de txt ele escreve linha x(quontidade)


se quiser detalhes do assunto como falou acima me mande por mensagem seu ICQ MSN orkut facebook ou qqr outro que prefira
EVANDROPEIXOTO 21/05/2013 14:24:28
#423808
Provavelmente esta sua aplicação deve ter alguma base de dados.

Eu criaria um tabela temporária com 1 coluna sendo esta a chave primaria.

Leio a linha do texto e incluo na tabela.

Se der erro de chave duplicada você despreza e continua.

No final esta tabela vai ter somente registros únicos.







ALEVALE 21/05/2013 15:18:32
#423812
Bom não sei se é o melhor dos métodos mas por enquanto não vejo outra opção.
Percorra o arquivo TXT salvando os dados em um array e depois no final quando ler tudo, organize o array (sort) e dai você percorre o arquivo TXT verificando se é igual.
Uma vez precisei de algo do gênero mas eu só verificava dentro do TXT se já tinha o valor.

Link:
http://www.vbforums.com/showthread.php?473677-VB6-Sorting-algorithms-(sort-array-sorting-arrays)
PAYDANA 21/05/2013 15:30:47
#423814
esse trem de array ai ainda nao domino não.
O que to pensando em fazer e pegar cada linha criar 1 txt

Depois com outro código eu listo todos os arquivos e conto quantos tem com x.txt , y.txt etc

Só to preocupado se o windows vai deixar criar arquivos com nomes repetidos na mesma pasta.


Essa ideia não e minha eu vi ela em um enviador de e-mails a anos atrás 2005 (JC nome do enviador)
Ele fazia isso quando mandava eliminar e-mails repetidos
PAYDANA 21/05/2013 21:38:15
#423821
Dessa forma que falei não vai prestar, porque vai eliminar os repetidos e não e essa minha ideia preciso e saber quantos repetidos tem e quem são eles

me de ideia ae gente, please
GANDA.NICK 22/05/2013 00:17:21
#423824
Resposta escolhida
veja e tente entender este code utilizando arrays

Option Explicit

Private Sub Command1_Click()
Dim hFile As Integer
Dim sTxt As String, sFile As String: sFile = [Ô]c:\arquivo.txt[Ô]

[ô]Passa o conteudo do *.TXT para a string sTxt
hFile = FreeFile
Open sFile For Input As #hFile
sTxt = Input(LOF(hFile), #hFile)
Close #hFile

[ô]Divide a string sTxt quando existe uma quebra de linha para um Array
Dim MyArr() As String
MyArr = Split(sTxt, vbCrLf)

[ô]Copiar repetidos para um novo array (arrRepetidos)
Dim i As Long, i2 As Long, i3 As Long: i3 = 0
Dim arrRepetidos() As String
For i = LBound(MyArr) To UBound(MyArr) - 1
For i2 = i + 1 To UBound(MyArr)
If MyArr(i) = MyArr(i2) Then
ReDim Preserve arrRepetidos(i3) As String
arrRepetidos(i3) = MyArr(i)
i3 = i3 + 1
End If
Next [ô]i2
Next [ô]i

[ô]Apagar o 1º array
Erase MyArr

[ô]Total Repetidos
MsgBox [Ô]Repetidos: [Ô] & UBound(arrRepetidos) + 1 [ô] +1 porque o array começa em zero

[ô]Listar Repetidos
For i = LBound(arrRepetidos) To UBound(arrRepetidos)
[ô]MsgBox arrRepetidos(i)
Debug.Print arrRepetidos(i)
Next [ô]i

[ô]Gravar repetidos em um *.TXT
sFile = [Ô]c:epetidos.txt[Ô]
hFile = FreeFile
Open sFile For Output As #hFile
For i = LBound(arrRepetidos) To UBound(arrRepetidos)
Print #hFile, arrRepetidos(i)
Next [ô]i
Close #hFile
End Sub



[txt-size=2]Note que se vc tiver a mesma linha repetida mais que uma vez no array [Ô]original[Ô] ele irá deixar repetir no arrRepetidos.[/txt-size]


[txt-color=#e80000] [/txt-color]

caso não queira assim, vc terá que entrelaçar mais um ciclo lá no meio para verificar se o repetido no array [Ô]original[Ô] ainda não existe no arrRepetidos....
VELDRAME 22/05/2013 08:42:17
#423828
Citação:

:
olhei aqui e parece q nao e bem isso...
pelo que entendi seu codigo ae compara 2 arquivos
o que quero aqui e um codigo que mergulhe em um .txt com milhares de linhas apanhe a primeira linha e então vasculhe todo o .txt atrás de outras linhas identicas a ela

dae em outro arquivo de txt ele escreve linha x(quontidade)


se quiser detalhes do assunto como falou acima me mande por mensagem seu ICQ MSN orkut facebook ou qqr outro que prefira



O espertão!
é só você escolher o mesmo arquivo para as duas opções.
Depois você cria um TXT com as informações do List.

E ao contrario do código do GANDA_NICK, o que te passei ira listar todos os repetidos não importando quantas vezes ele apareça.
Estive pensando ontem a noite.
Você esta afim de criar uma lista com os resultados dos jogos passados (quadra, quina,...), os que mais saíram.
Não é?
PAYDANA 22/05/2013 10:08:08
#423837
Citação:

Estive pensando ontem a noite.
Você esta afim de criar uma lista com os resultados dos jogos passados (quadra, quina,...), os que mais saíram.
Não é?



SIM!
PAYDANA 22/05/2013 12:03:15
#423850
GANDA_NICK deu Out of Memory

VELDRAME no seu deu Overflow

kkkkkk to fudido
Página 1 de 2 [16 registro(s)]
Tópico encerrado , respostas não são mais permitidas