Bom Dia a todos \o
Galera, vejam se conseguem me ajudar, estou quebrando a cabeça aqui a um tempinho e não consigo achar soluçao.
Para entenderem o problema.
Eu recebo um arquivo .TXT de uma empresa com telefones, só que o layout do arquivo não é compativel com a importação para meu ERP, fiz um programa que faz a "conversão" de layout para poder importar para meu ERP.
O formato do arquivo.
CPF;DDD1;Telefone1;DDD2;Telefone2;DDD3;Telefone3;DDD4;Telefone4;DDD5;Telefone5;DDD6;Telefone6;DDD7;Telefone7;DDD8;Telefone8;DDD9;Telefone9;DDD10;Telefone10
Só que assim, tem CPF que vem 3 números de telefone e CPF que vem 10.
Depende do CPF, eu fiz um código que alinha os telefones dessa maneira para importação.
CPF;DDD1Telefone1
CPF;DDD2Telefone2
CPF;DDD3Telefone3
CPF;DDD4Telefone4
CPF;DDD5Telefone5
CPF;DDD6Telefone6
CPF;DDD7Telefone7
CPF;DDD8Telefone8
CPF;DDD9Telefone9
CPF;DDD10Telefone10
Só que eu estou duplicando os valores com meu código, observem.
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.channels.FileChannel;
import java.sql.SQLException;
import java.util.regex.Pattern;
public class tratPipe {
public void tratamentoArquivo(String caminho, String arqTrat)
throws IOException, ClassNotFoundException, SQLException {
FileReader ler = new FileReader(caminho);
BufferedReader leitor = new BufferedReader(ler);
String linha;
@SuppressWarnings("unused")
String linhaReescrita;
PrintWriter out = new PrintWriter(arqTrat);
while ((linha = leitor.readLine()) != null) {
try {
String[] linhas = linha.split(Pattern.quote(";"));
// linhaReescrita = linha.replaceAll(";00", ";");
out.println(linhas[0] + ";" + linhas[1] + linhas[2]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10] + "\n"
+ linhas[0] + ";" + linhas[11] + linhas[12]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10] + "\n"
+ linhas[0] + ";" + linhas[11] + linhas[12] + "\n"
+ linhas[0] + ";" + linhas[13] + linhas[14]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10] + "\n"
+ linhas[0] + ";" + linhas[11] + linhas[12] + "\n"
+ linhas[0] + ";" + linhas[13] + linhas[14] + "\n"
+ linhas[0] + ";" + linhas[15] + linhas[16]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10] + "\n"
+ linhas[0] + ";" + linhas[11] + linhas[12] + "\n"
+ linhas[0] + ";" + linhas[13] + linhas[14] + "\n"
+ linhas[0] + ";" + linhas[15] + linhas[16] + "\n"
+ linhas[0] + ";" + linhas[17] + linhas[18]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10] + "\n"
+ linhas[0] + ";" + linhas[11] + linhas[12] + "\n"
+ linhas[0] + ";" + linhas[13] + linhas[14] + "\n"
+ linhas[0] + ";" + linhas[15] + linhas[16] + "\n"
+ linhas[0] + ";" + linhas[17] + linhas[18] + "\n"
+ linhas[0] + ";" + linhas[19] + linhas[20]);
} catch (ArrayIndexOutOfBoundsException b) {
System.out.println("Erro: " + b);
}
}
out.close();
leitor.close();
}
public static void copiarArquivos(String source, String destination)
throws IOException {
FileChannel sourceChannel = null;
FileChannel destinationChannel = null;
try {
sourceChannel = new FileInputStream(source).getChannel();
destinationChannel = new FileOutputStream(destination).getChannel();
sourceChannel.transferTo(0, sourceChannel.size(),
destinationChannel);
} finally {
if (sourceChannel != null && sourceChannel.isOpen())
sourceChannel.close();
if (destinationChannel != null && destinationChannel.isOpen())
destinationChannel.close();
}
}
public void removDuplicado(String nvArquivo, String arqTrat)
throws IOException, ClassNotFoundException, SQLException {
FileReader ler = new FileReader(arqTrat);
BufferedReader leitor = new BufferedReader(ler);
String linha;
String retira00;
String retira0;
PrintWriter out = new PrintWriter(nvArquivo);
while ((linha = leitor.readLine()) != null) {
retira00 = linha.replaceAll(";00", ";");
retira0 = retira00.replaceAll(";0", ";");
out.println(retira0);
}
out.close();
leitor.close();
File arq = new File(arqTrat);
arq.delete();
}
}
No código, no trecho abaixo eu duplico o numero varias vezes, pois se coloco apenas do telefone1 ao telefone10 ele me traz somente CPFs do arquivo que contenha 10 telefones e não todos.
out.println(linhas[0] + ";" + linhas[1] + linhas[2]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10] + "\n"
+ linhas[0] + ";" + linhas[11] + linhas[12]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10] + "\n"
+ linhas[0] + ";" + linhas[11] + linhas[12] + "\n"
+ linhas[0] + ";" + linhas[13] + linhas[14]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10] + "\n"
+ linhas[0] + ";" + linhas[11] + linhas[12] + "\n"
+ linhas[0] + ";" + linhas[13] + linhas[14] + "\n"
+ linhas[0] + ";" + linhas[15] + linhas[16]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10] + "\n"
+ linhas[0] + ";" + linhas[11] + linhas[12] + "\n"
+ linhas[0] + ";" + linhas[13] + linhas[14] + "\n"
+ linhas[0] + ";" + linhas[15] + linhas[16] + "\n"
+ linhas[0] + ";" + linhas[17] + linhas[18]);
out.println(linhas[0] + ";" + linhas[1] + linhas[2] + "\n"
+ linhas[0] + ";" + linhas[3] + linhas[4] + "\n"
+ linhas[0] + ";" + linhas[5] + linhas[6] + "\n"
+ linhas[0] + ";" + linhas[7] + linhas[8] + "\n"
+ linhas[0] + ";" + linhas[9] + linhas[10] + "\n"
+ linhas[0] + ";" + linhas[11] + linhas[12] + "\n"
+ linhas[0] + ";" + linhas[13] + linhas[14] + "\n"
+ linhas[0] + ";" + linhas[15] + linhas[16] + "\n"
+ linhas[0] + ";" + linhas[17] + linhas[18] + "\n"
+ linhas[0] + ";" + linhas[19] + linhas[20]);
Teria alguma maneira de trazer todos os numeros dos arquivos só que sem duplicar?
Ou então, criar um método que possa eliminar os telefones duplicados de cada CPF?