Jump to content

ufrrj99

Members
  • Content count

    2
  • Joined

  • Last visited

Community Reputation

0 Comum

About ufrrj99

  1. O PHP abaixo já funciona mas preciso transformá-lo em VB pra ser mais útil e menos limitado. Da forma que está ele procura por determinada palavra, cria um arquivo e move todas as palavras encontradas em todos os arquivos da pasta para um único arquivo. Agradeço por qualquer alteração ou melhoria nele. Retirar a opção de apenas arquivos TXT e deixar ler qualquer arquivo $files = glob($base.'*.txt'); // Pega todos os arquivos que terminam com .txt Preciso que ele trabalhe de forma automática e fazendo o seguinte: 1) Opção de escolher pasta ORIGEM 2) opção de escolher pasta DESTINO Na pasta ORIGEM: 3) Abrir o primeiro arquivo TXT (que tem um email por linha+Enter) 4) Ver qual servidor do primeiro email - exemplo: @teste.com.br 5) Criar um arquivo chamado "teste.com.br" na pasta DESTINO 6) Mover todos os emails @teste.com.br deste arquivo origem para o arquivo destino 7) Salvar o arquivo aberto e recomeçar a partir da opção 3. Como são vários arquivos e alguns com 300Mb então precisa fazer LOOP do 3 ao 7 para economizar memória e o computador conseguir realizar a tarefa. $base = DIR.DIRECTORY_SEPARATOR; // Diretório onde estão os arquivos txt. $files = glob($base.'*.txt'); // Pega todos os arquivos que terminam com .txt $search = 'silva'; // a palavra que deseja buscar $found = array(); $arr = array(); // Itera os arquivos encontrados foreach ($files as $file) { // Lê cada arquivo em um array $arr = file($file); foreach ($arr as $k => $v) { // Se encontrar a palavra, guarda no array $found e remove do array que leu o arquivo. if (stripos($v, $search) !== false) { $found[] = trim($arr[$k]); unset($arr[$k]); } } // Salva os dados no arquivo, com os nomes removidos if (!empty($found)) { file_put_contents($file, implode('', $arr)); } } // salva todos os nomes encontrados if (!empty($found)) { file_put_contents($base.'silva.txt', implode(PHP_EOL, $found)); } unset($found, $arr);
  2. O PHP abaixo já funciona mas preciso automatizá-lo. Da forma que está ele procura por determinada palavra, cria um arquivo e move todas as palavras encontradas em todos os arquivos da pasta para um único arquivo. Agradeço por qualquer alteração ou melhoria nele. Retirar a opção de apenas arquivos TXT e deixar ler qualquer arquivo $files = glob($base.'*.txt'); // Pega todos os arquivos que terminam com .txt Preciso que ele trabalhe de forma automática e fazendo o seguinte: 1) Opção de escolher pasta ORIGEM 2) opção de escolher pasta DESTINO Na pasta ORIGEM: 3) Abrir o primeiro arquivo TXT (que tem um email por linha+Enter) 4) Ver qual servidor do primeiro email - exemplo: @teste.com.br 5) Criar um arquivo chamado "teste.com.br" na pasta DESTINO 6) Mover todos os emails @teste.com.br deste arquivo origem para o arquivo destino 7) Salvar o arquivo aberto e recomeçar a partir da opção 3. Como são vários arquivos e alguns com 300Mb então precisa fazer LOOP do 3 ao 7 para economizar memória e o computador conseguir realizar a tarefa. $base = DIR.DIRECTORY_SEPARATOR; // Diretório onde estão os arquivos txt. $files = glob($base.'*.txt'); // Pega todos os arquivos que terminam com .txt $search = 'silva'; // a palavra que deseja buscar $found = array(); $arr = array(); // Itera os arquivos encontrados foreach ($files as $file) { // Lê cada arquivo em um array $arr = file($file); foreach ($arr as $k => $v) { // Se encontrar a palavra, guarda no array $found e remove do array que leu o arquivo. if (stripos($v, $search) !== false) { $found[] = trim($arr[$k]); unset($arr[$k]); } } // Salva os dados no arquivo, com os nomes removidos if (!empty($found)) { file_put_contents($file, implode('', $arr)); } } // salva todos os nomes encontrados if (!empty($found)) { file_put_contents($base.'silva.txt', implode(PHP_EOL, $found)); } unset($found, $arr);
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.