Comparar 2 arquivos Texto com o mesmo Layout
Bom tenho 2 arquivos Texto (Arquivo1.txt, Arquivo2.txt)com o mesmo layout e preciso comparar para saber se o Arquivo2 possuia as mesmas linhas que o Arquivo1.
Se no Arquivo1 existir alguma linha que não exista no Arquivo2, então criar um Arquivo3.txt contendo essas linhas.
Se no Arquivo1 existir alguma linha que não exista no Arquivo2, então criar um Arquivo3.txt contendo essas linhas.
Fabiano Góes
Curtidas 0
Respostas
Bmetric
22/09/2005
Carregue o Arq2 num TStringList, leia o Arq1 e utilize o IndexOf da TStringList.
GOSTEI 0
Fabiano Góes
22/09/2005
Por favor, você poderia me dar um exemplo ?
GOSTEI 0
Bmetric
22/09/2005
var f:TextFile; SL:TStringList; s:String; begin SL := TStringList.Create; try SL.LoadFromFile(´c:\Arq2.txt´); AssignFile(f, ´c:\Arq1.txt´); Reset(f); While not Eof(f) do begin Readln(f, s); if SL.IndexOf(s) < 0 then begin // Arq1 não existe em Arq2 end; end; CloseFile(f); finally SL.Free; end; end;
GOSTEI 0
Fabiano Góes
22/09/2005
bmetric, Valeu ai brother
exatamente o que eu precisava !!!!!!
:lol:
exatamente o que eu precisava !!!!!!
:lol:
GOSTEI 0
Rjun
22/09/2005
Usando somente TStringList.
var Base, AComparar, Resultado: TStringList; i: integer; begin Base := TStringList.Create; AComparar := TStringList.Create; Resultado := TStringList.Create; try Base.LoadFromFile(´c:\Arq2.txt´); AComparar.LoadFromFile(´c:\Arq1txt´); for i := 0 to AComparar.Count do if Base.IndexOf(AComparar.Strings[i]) < 0 then Resultados.Strings.Add(Base.Strings[i]); Resultados.SaveToFile(´c:\arquivoerros.txt´); finally FreeAndNil(Base); FreeAndNil(AComparar); FreeAndNil(Resultado); end;
GOSTEI 0
Fabiano Góes
22/09/2005
Rjun valeu cara, estou preecisando mesmo aprender mais sobre TStringList.
Cara estou achando muito legal o que se pode fazer com TStringList.
a propósito se você tiver alguns exemplos de Utilização de TStringList epuder me mandar eu agradeceria muito . :lol:
fabianogoes@ig.com.br
de qualquer forma você já me ajudou muito !!!!!
Cara estou achando muito legal o que se pode fazer com TStringList.
a propósito se você tiver alguns exemplos de Utilização de TStringList epuder me mandar eu agradeceria muito . :lol:
fabianogoes@ig.com.br
de qualquer forma você já me ajudou muito !!!!!
GOSTEI 0
Bmetric
22/09/2005
for i := 0 to AComparar.Count do
GOSTEI 0
Rjun
22/09/2005
for i := 0 to AComparar.Count do
Verdade. O correto é :
for i := 0 to AComparar.Count -1 do
GOSTEI 0
Rjun
22/09/2005
for i := 0 to AComparar.Count do
Não se sinta encabulado para postar a correção.
GOSTEI 0
Bmetric
22/09/2005
[quote:25983182da=´Fabiano Góes´]Cara estou achando muito legal o que se pode fazer com TStringList.[/quote:25983182da]Veja tb as propriedades: Names, Values,
Duplicates, CaseSensitive.
Duplicates, CaseSensitive.
GOSTEI 0
Fabiano Góes
22/09/2005
Ah sim galera, desculpem eu já tinha modificado o For, e esqueci de avisar , realmente funcionou assim :
Valeu a atenção pessoal :wink:
for i := 0 to AComparar.Count -1 do
Valeu a atenção pessoal :wink:
GOSTEI 0
Fabiano Góes
22/09/2005
ai galera se alguem precisar aproveitar o código ficou assim :
deixando os creditos aos colegas( Rjun, bmetric ) é claro !!
valeu brothers
var Entrada, Saida, Resultado : TStringList; i : Integer; begin Entrada := TStringList.Create; Saida := TStringList.Create; Resultado := TStringList.Create; Entrada.LoadFromFile(´c:\arqEnt.txt´); Saida.LoadFromFile(´c:\arqSai.txt´); for i := 0 to Entrada.Count - 1 do begin if saida.IndexOf(Entrada.Strings[i]) < 0 then Resultado.Add(Entrada.Strings[i]); end; Resultado.SaveToFile(´c:\NProces.txt´);
deixando os creditos aos colegas( Rjun, bmetric ) é claro !!
valeu brothers
GOSTEI 0