Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MrEd

Comparar 2 arquivos

Recommended Posts

Pessoal, preciso pegar 2 arquivos txt, le-los e comparar o que cada um contem linha por linha e o q nao tiver em um, lista-lo em outro arquivo txt ou na propria tela. Como posso fazer isso?Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, eu fiz desse jeito e queria saber a opião de vcs, não da erro + nao tenho certesa se eu fiz certo:

 

PHP [/tr][tr]<?

$arquivo = "AGOSTO.txt";

 

$ponteiro = file($arquivo);

 

$num_linhas = count($arquivo);

 

for($i = 0; $i <= sizeof($num_linhas); $i++) {

$parte = explode(";", $ponteiro[$i]);

 

$funcionario = trim($parte[1]);

 

$parte_senha = trim($parte[0]);

$mat = explode("-",$parte_senha);

$matricula = "".$mat[0]."".$mat[1]."";

}

 

// Outro Arquivo

 

$arquivo = "Pasta2.txt";

 

 

$ponteiro = file($arquivo);

 

$num_linhas2 = count($arquivo);

 

 

for($i = 0; $i <= sizeof($num_linhas2); $i++) {

 

$parte2 = explode(";", $ponteiro[$i]);

 

$funcionario2 = trim($parte[1]);

 

$matricula2 = trim($parte[0]);

 

// Verifica se existe alguma coisa diferente nos arquivos

if($funcionario != $funcionario2 && $matricula != $matricula2 ) {

echo "<font color='red'>".$parte_user2."</font> <font color='blue'>".$parte_user2."</font><br>";

@$naoexiste++;

}//FECHA IF

}//FECHA FOR

if(!@$naoexiste) {

echo "<h3 align='center'>Nada Encontrado !!!</h3>";

}

?>

[/tr]

 

Opinem por favor.

 

Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não seria isso ?

<?php
     error_reporting( E_ALL | E_STRICT | E_DEPRECATED );
     ini_set( 'display_errors', 'On' );
     $arquivo = fopen( 'arquivo1.txt', 'r' );
     echo '<pre>';
     while( !feof( $arquivo ) ){
     $linha = fscanf( $arquivo, '%[a-zA-Z0-9\s]' );
     for( $i = 0; $i < count( $linha ); ++$i ){
	  $linhas[ 'arquivo1' ][] = preg_replace( '/^\s/', null, $linha[ $i ] );
     }
     }
     fclose( $arquivo );
     $arquivo2 = fopen( 'arquivo2.txt', 'r' );
     while( !feof( $arquivo2 ) ){
     $linha2 = fscanf( $arquivo2, '%[a-zA-Z0-9\s]' );
     for( $i = 0; $i < count( $linha2 ); ++$i ){
	  $linhas[ 'arquivo2' ][] = preg_replace( '/^\s/', null, $linha2[ $i ] );
     }
     }
     print_r( array_diff( $linhas[ 'arquivo1' ], $linhas[ 'arquivo2' ] ) );

 

Usei os seguintes txts para teste:

Arquivo1.txt -----
linha1
linha2
linha3
linha4
linha5
linha6
linha7
linha8
linha9
linha10

Arquivo2.txt -----
linha2
linha3
linha4
linha5
linha6
linha7
linha8
linha9

 

Saída:

andrey@Andrey:~$ php -f /var/www/index.php
Array
(
   [0] => linha1
   [9] => linha10
)
andrey@Andrey:~$

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Não sei se perceberam, mas o post é de 2004

 

O autor certamente já resolveu esse problema faz muitos anos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei se ele resolveu so sei que estou com mesmo problema aqui,gostaria de fazer comparação de 2 arquivos txt 2 relatorios no caso pegar o campo de 1 comparar com campo de outro e adicionar o campo do arquivo txt2 quem n tem no campo do txt1 a 1 outro relatorio

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.