elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  como recorrer un archivo de palabras vetadas y descartarlas para una comparacion
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como recorrer un archivo de palabras vetadas y descartarlas para una comparacion  (Leído 3,002 veces)
or.gutierrez

Desconectado Desconectado

Mensajes: 6


Ver Perfil
como recorrer un archivo de palabras vetadas y descartarlas para una comparacion
« en: 4 Noviembre 2014, 15:15 pm »

Estimados junto con saludar me dirijo a ustedes para solicitar ayuda con respecto a algo que estoy desarrollando.

mi problema radica básicamente en que debo realizar una comparación de datos entre un archivo de texto y otro generado desde un pdf,  el archivo pdf me genera datos basura que no utilizare para comparar, y estos datos los puse en un txt que pretendo utilizar para que no los
tome en cuenta cuando compare y es acá donde no se como llevar a cabo eso. Agradeciera si me pudieran ayudar a ver la luz con este asunto ya que  me tiene arrojando humo por la cabeza xD

la clase donde tengo los métodos es así:

Desde ya agradezco la ayuda a todos. Saludos y buen día
Código
  1. public class PdfFile extends Files{
  2.  
  3. private int folio;
  4. private Date periodoPago;
  5. private String nombreEmpresa;
  6. private float totalMes;
  7. private ArrayList trash;
  8.  
  9.  
  10. public  PdfFile(){
  11. if(trash==null){
  12. trash = new ArrayList();
  13.  
  14.  
  15. }
  16. }
  17.  
  18. public PdfFile(int codigoOficina, String rutEmpresa, int codigoNomina,
  19. Date fechaVencimiento, int folio, Date periodoPago,
  20. String nombreEmpresa, float totalMes) {
  21. super(codigoOficina, rutEmpresa, codigoNomina, fechaVencimiento);
  22. this.folio = folio;
  23. this.periodoPago = periodoPago;
  24. this.nombreEmpresa = nombreEmpresa;
  25. this.totalMes = totalMes;
  26. }
  27. public int getFolio() {
  28. return folio;
  29. }
  30. public void setFolio(int folio) {
  31. this.folio = folio;
  32. }
  33. public Date getPeriodoPago() {
  34. return periodoPago;
  35. }
  36. public void setPeriodoPago(Date periodoPago) {
  37. this.periodoPago = periodoPago;
  38. }
  39. public String getNombreEmpresa() {
  40. return nombreEmpresa;
  41. }
  42. public void setNombreEmpresa(String nombreEmpresa) {
  43. this.nombreEmpresa = nombreEmpresa;
  44. }
  45. public float getTotalMes() {
  46. return totalMes;
  47. }
  48. public void setTotalMes(float totalMes) {
  49. this.totalMes = totalMes;
  50. }
  51. public ArrayList getTrash() {
  52. return trash;
  53. }
  54. public void setTrash(ArrayList trash) {
  55. this.trash = trash;
  56. }
  57.  
  58. public Boolean compararLinea(String linea){
  59. for(int i=0;i<trash.size();i++){
  60. if(trash.get(i).toString().equalsIgnoreCase(linea)){
  61. return true;
  62. }else{
  63. return false;
  64. }
  65. }
  66. return false;
  67. }
  68.  
  69. public void llenarArreglo(String file) throws IOException{
  70. BufferedReader reader = new BufferedReader(new FileReader(file));
  71. while(reader.ready()){
  72. trash.add(reader.readLine());
  73. }
  74. }
  75. }

Código
  1. public class ComparaTxtPdf {
  2.  
  3. public void compararNominas() throws IOException{
  4.  
  5. String descptnFile  = "C:\\Log.txt";
  6. //aca debo de capturar los archivos con los mismos nombres, ya que los documentos se rigen por una nomenclatura
  7. //esto es para pruebas
  8. File dirTxt = new File("C:\\NominasTxt\\");
  9. String[] nominasTxt = dirTxt.list();
  10.  
  11. File dirConver = new File("C:\\PDFconver\\");
  12. String[] converTxt = dirConver.list();
  13.  
  14. PdfFile pdfPrueba = new PdfFile();
  15.  
  16. for (int x=0;x<nominasTxt.length;x++){//SE RECORRE EL ARREGLO CON LOS NOMBRES DE ARCHIVO
  17.            String mandante=("C:\\NominasTxt\\"+nominasTxt[x]);//SE ALMACENA LA RUTA DEL ARCHIVO A LEER.
  18.  
  19.            //no es necesario recorrer los pdf, ya que solo se necesita comparara el txt con los valores de las nominas que ya estan dentro de un fichero, se sugiere usar
  20.            //hashmap para guardar los pdf
  21.  
  22.            for (int i=0;i<converTxt.length;i++){//SE RECORRE EL ARREGLO CON LOS NOMBRES DE ARCHIVO
  23.            String aComparar=("C:\\PDFconver\\"+converTxt[i]);            
  24.  
  25.     try{
  26.     // Crea los archivos leer archivo escribir archivo
  27.     FileReader actualFileReader  = new FileReader(mandante);
  28.     FileReader expctdFileReader  = new FileReader(aComparar);
  29.  
  30.     FileWriter resultDesc = new FileWriter(descptnFile);    
  31.  
  32.     //PRUEBA HASHMAP
  33.     //asigno el string que necesita el metodo llenarArreglo de la clase PdfFile
  34.     pdfPrueba.llenarArreglo("C:\\palabrasVetadas.txt");
  35.  
  36.     BufferedReader expcFileBufRdr = new BufferedReader(expctdFileReader);
  37.  
  38.     String[] campos=null;
  39.  
  40.     String rut,nombre=" ";
  41.     int cuota, folioCredito, totalCuotas, tolalPagar, valorCuota;
  42.  
  43.    while(expcFileBufRdr.ready()){
  44.  
  45.     Record record = new Record();
  46.  
  47.    if(!pdfPrueba.compararLinea(expcFileBufRdr.readLine()) && expcFileBufRdr.readLine()!=null){
  48.  
  49.     campos = expcFileBufRdr.readLine().split(" ");
  50.     record.setRutDeudor(campos[0]);
  51.     record.setCuota(1);
  52.     record.setFolioCredito(1);
  53.     record.setNombreDeudor("");
  54.     record.setTotalCuotas(1);
  55.     record.setTotalPagar(2);
  56.     record.setValorCuota(2);
  57.  
  58.     System.out.println("este es el campo rut " + campos[0]);
  59.  
  60.     //System.out.println("Tamano arreglo" + pdfPrueba.getPalabrasBasuras().size());
  61.     //pdfPrueba.llenarArreglo("C:\\palabrasVetadas.txt");
  62.  
  63.     //System.out.println("Tamano arreglo" + pdfPrueba.getPalabrasBasuras().size());
  64.  
  65.     for(int a =0;a<pdfPrueba.getTrash().size();a++){
  66.     //System.out.println("Palabras basuras : "+pdfPrueba.getTrash().get(a));
  67.  
  68.     }
  69.  
  70.    }  
  71.    }    
  72.     //FIN PRUEBA HASHMAP    
  73.     }
  74.     catch( FileNotFoundException e ){
  75.             e.printStackTrace();
  76.     }
  77. }
  78. }
  79. }
  80. }


En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: como recorrer un archivo de palabras vetadas y descartarlas para una comparacion
« Respuesta #1 en: 4 Noviembre 2014, 15:18 pm »

Código
  1.  if(!pdfPrueba.compararLinea(expcFileBufRdr.readLine()) && expcFileBufRdr.readLine()!=null){

En esa linea compadre ya estas dejando de leer datos basura que insertaste en el arrayTrash en tu clase que tiene los datos del pdf.

Código
  1. public void llenarArreglo(String file) throws IOException{
  2. BufferedReader reader = new BufferedReader(new FileReader(file));
  3. while(reader.ready()){
  4. trash.add(reader.readLine());
  5. }
  6. }
Ahi lo estas usando, acuerdate que pasaste por parametro el archivo como String.


y aca lo estas comparando

Código
  1. public Boolean compararLinea(String linea){
  2. for(int i=0;i<trash.size();i++){
  3. if(trash.get(i).toString().equalsIgnoreCase(linea)){
  4. return true;
  5. }else{
  6. return false;
  7. }
  8. }
  9. return false;
  10. }


« Última modificación: 4 Noviembre 2014, 15:20 pm por DonVidela » En línea

or.gutierrez

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: como recorrer un archivo de palabras vetadas y descartarlas para una comparacion
« Respuesta #2 en: 4 Noviembre 2014, 15:32 pm »

Gracias por la respuesta entiendo mas menos la lógica de que ya las palabras basura se están leyendo y están por así llamarlo en consideración, pero mi problema es que cuando ejecuto me siguen apareciendo palabras vetadas y es ah donde no puedo o no entiendo como hacerlas desaparecer, ya que son palabras que no utilizare y están agregadas a mi archivo de palabras no utilizables, acá un ejemplo de la salida: (espero se entienda) Saludos y gracias.

Código
  1. este es el campo rut R.U.T.
  2. este es el campo rut VALOR
  3. este es el campo rut CUOTAS
  4. este es el campo rut DESCONTADAS
  5. este es el campo rut ANTECEDENTES
  6. este es el campo rut (-)
  7. este es el campo rut TOTAL
  8. este es el campo rut 1
  9. este es el campo rut -
  10. este es el campo rut
  11. este es el campo rut
  12. este es el campo rut 51/58
  13. este es el campo rut 001
  14. este es el campo rut 12.852.945-4
  15. este es el campo rut 16.995.070-9
  16. este es el campo rut 6.002.779-K
  17. este es el campo rut 9.678.656-5
  18. este es el campo rut 16.339.547-9
  19. este es el campo rut 16.906.181-5
  20. este es el campo rut SOLUCIONES
  21. este es el campo rut FOLIO:
  22. este es el campo rut OFICINA
  23. este es el campo rut FOLIO
  24. este es el campo rut CUOTA
  25. este es el campo rut ANTICIPADAS
  26. este es el campo rut DEL
  27. este es el campo rut TOTAL
  28. este es el campo rut TOTAL
  29. este es el campo rut Firma
  30. este es el campo rut 3
  31. este es el campo rut
  32. este es el campo rut -
  33. este es el campo rut -
  34. este es el campo rut 29.428.042
  35. este es el campo rut 13.740.401-K
  36. este es el campo rut 15.307.328-7
  37. este es el campo rut 8.375.984-4
  38. este es el campo rut 12.266.303-5
  39. este es el campo rut 15.027.053-7
  40. este es el campo rut 16.177.190-2
  41. este es el campo rut 10.670.274-8
  42. este es el campo rut DE
  43. este es el campo rut Correspondiente
  44. este es el campo rut R.U.T.
  45. este es el campo rut VALOR
  46. este es el campo rut CUOTAS
  47. este es el campo rut DESCONTADAS
  48. este es el campo rut ANTECEDENTES
  49. este es el campo rut (-)
  50. este es el campo rut TOTAL
  51. este es el campo rut 1
  52. este es el campo rut -
  53. este es el campo rut
  54. este es el campo rut
  55. este es el campo rut 53/58
  56. este es el campo rut 001
  57. este es el campo rut 11.580.285-2
  58. este es el campo rut 7.455.944-1
  59. este es el campo rut 11.673.974-7
  60. este es el campo rut 13.680.863-K
  61. este es el campo rut 16.129.538-8
  62. este es el campo rut 13.639.428-2
  63. este es el campo rut SOLUCIONES
  64. este es el campo rut FOLIO:
  65. este es el campo rut OFICINA
  66. este es el campo rut FOLIO
  67. este es el campo rut CUOTA
  68. este es el campo rut ANTICIPADAS
  69. este es el campo rut DEL
  70. este es el campo rut TOTAL
  71. este es el campo rut TOTAL
  72. este es el campo rut Firma
  73. este es el campo rut 3
  74. este es el campo rut
  75. este es el campo rut -
  76. este es el campo rut -
  77. este es el campo rut 29.428.042
  78. este es el campo rut 6.478.834-5
  79. este es el campo rut 11.269.763-2
  80. este es el campo rut 6.758.763-4
  81. este es el campo rut 10.350.017-6
  82. este es el campo rut 8.190.310-7
  83. este es el campo rut 15.091.280-6
  84. este es el campo rut 11.707.872-8
  85. este es el campo rut DE
  86. este es el campo rut Correspondiente
  87. este es el campo rut R.U.T.
  88. este es el campo rut VALOR
  89. este es el campo rut CUOTAS
  90. este es el campo rut DESCONTADAS
  91. este es el campo rut ANTECEDENTES
  92. este es el campo rut (-)
  93. este es el campo rut TOTAL
  94. este es el campo rut 1
  95. este es el campo rut -
  96. este es el campo rut
  97. este es el campo rut
  98. este es el campo rut 55/58
  99. este es el campo rut 001
  100. este es el campo rut 11.472.422-K
  101. este es el campo rut 13.919.571-K
  102. este es el campo rut 16.621.197-2
  103. este es el campo rut 11.901.730-0
  104. este es el campo rut 6.973.812-5
  105. este es el campo rut 14.468.911-9
  106. este es el campo rut SOLUCIONES
  107. este es el campo rut FOLIO:
  108. este es el campo rut OFICINA
  109. este es el campo rut FOLIO
  110. este es el campo rut CUOTA
  111. este es el campo rut ANTICIPADAS
  112. este es el campo rut DEL
  113. este es el campo rut TOTAL
  114. este es el campo rut TOTAL
  115. este es el campo rut Firma
  116. este es el campo rut 3
  117. este es el campo rut
  118. este es el campo rut -
  119. este es el campo rut -
  120. este es el campo rut 29.428.042
  121. este es el campo rut 11.491.865-2
  122. este es el campo rut 14.494.566-2
  123. este es el campo rut 8.964.389-9
  124. este es el campo rut 14.242.049-K
  125. este es el campo rut 13.014.367-9
  126. este es el campo rut 13.323.142-0
  127. este es el campo rut 14.321.086-3
  128. este es el campo rut DE
  129. este es el campo rut Correspondiente
  130. este es el campo rut R.U.T.
  131. este es el campo rut VALOR
  132. este es el campo rut CUOTAS
  133. este es el campo rut DESCONTADAS
  134. este es el campo rut ANTECEDENTES
  135. este es el campo rut (-)
  136. este es el campo rut TOTAL
  137. este es el campo rut 1
  138. este es el campo rut -
  139. este es el campo rut
  140. este es el campo rut
  141. este es el campo rut 57/58
  142. este es el campo rut 001
  143. este es el campo rut 9.157.089-0
  144. este es el campo rut 15.407.479-1
  145. este es el campo rut 14.264.931-4
  146. este es el campo rut 7.737.233-4

En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: como recorrer un archivo de palabras vetadas y descartarlas para una comparacion
« Respuesta #3 en: 4 Noviembre 2014, 15:40 pm »

Prueba esto          

en vez de
Código
  1. e if(trash.get(i).toString().equalsIgnoreCase(linea)){

prueba con
Código
  1. if(trash.get(i).toString().contains(linea)){
  2.  
  3.  
En línea

or.gutierrez

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: como recorrer un archivo de palabras vetadas y descartarlas para una comparacion
« Respuesta #4 en: 4 Noviembre 2014, 15:44 pm »

Estimado, aun me arroja palabras vetadas sigue igual que el código que pegue mas arriba.
En línea

or.gutierrez

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: como recorrer un archivo de palabras vetadas y descartarlas para una comparacion
« Respuesta #5 en: 4 Noviembre 2014, 16:34 pm »

Sigo sin poder lograrlo :/ agradecería ayuda...
En línea

or.gutierrez

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: como recorrer un archivo de palabras vetadas y descartarlas para una comparacion
« Respuesta #6 en: 4 Noviembre 2014, 20:52 pm »

Algo voy avanzando, pero aun no logro sacar todas las palabras y cuando recorro el archivo me muestra registros saltados...  agradezco la ayuda. Saludos.

acá el código:

Código
  1. nominasTxt = dirTxt.list();
  2.  
  3. File dirConver = new File("C:\\PDFconver\\");
  4. String[] converTxt = dirConver.list();
  5.  
  6. PdfFile pdfPrueba = new PdfFile();
  7.  
  8. //for (int x=0;x<nominasTxt.length;x++){//SE RECORRE EL ARREGLO CON LOS NOMBRES DE ARCHIVO
  9.            //String actualFile=("C:\\NominasTxt\\"+nominasTxt[x]);//SE ALMACENA LA RUTA DEL ARCHIVO A LEER.
  10.  
  11.            //no es necesario recorrer los pdf, ya que solo se necesita comparara el txt con los valores de las nominas que ya estan dentro de un fichero, se sugiere usar
  12.            //hashmap para guardar los pdf
  13.  
  14.            for (int i=0;i<converTxt.length;i++){//SE RECORRE EL ARREGLO CON LOS NOMBRES DE ARCHIVO
  15.            String expectedFile=("C:\\PDFconver\\"+converTxt[i]);
  16.  
  17.     try{
  18.     // Crea los archivos leer archivo escribir archivo
  19.     //FileReader actualFileReader  = new FileReader(actualFile);
  20.     FileReader expctdFileReader  = new FileReader(expectedFile);
  21.     FileWriter resultDesc = new FileWriter(descptnFile);
  22.  
  23.     //PRUEBA HASHMAP
  24.     pdfPrueba.llenarArreglo("C:\\palabrasVetadas.txt");
  25.  
  26.     BufferedReader expcFileBufRdr = new BufferedReader(expctdFileReader);
  27.  
  28.     String rut, nombre;
  29.     int folio, cuota, total_cuota, valor_cuota, total;
  30.  
  31.    while(expcFileBufRdr.ready()){
  32.     //creo nuevo objeto de tipo record donde voy a guardar los valores de las variables
  33.     Record record = new Record();
  34.  
  35.    if(!pdfPrueba.compararLinea(expcFileBufRdr.readLine()) && expcFileBufRdr.readLine()!=null){
  36.    //System.out.println("Tamano Original " + pdfPrueba.getTrash().size());
  37. //pdfPrueba.llenarArreglo("C:\\palabrasVetadas.txt");
  38. //System.out.println("Tamano sin palabras vetadas " + pdfPrueba.getTrash().size());
  39.  
  40.    String[] campos = expcFileBufRdr.readLine().split(" ");
  41.  
  42.  
  43.    for(int m = 0; m<campos.length; m++){
  44.  
  45.     System.out.println(campos[m]);
  46.  
  47.  
  48.  
  49.    }
  50.  
  51.  
  52.     /*record.setCuota(1);
  53.     record.setFolioCredito(1);
  54.     record.setNombreDeudor("");
  55.     record.setRutDeudor(campos[0]);
  56.     record.setTotalCuotas(1);
  57.     record.setTotalPagar(2);
  58.     record.setValorCuota(2);*/
  59.  
  60.     //System.out.println(campos[0]);
  61.     System.out.println("");
  62.  
  63.    }
  64.     //pdfPrueba.getMapaRecords().put(record.getRutDeudor(), record);
  65.  
  66.     for(int a =0;a<pdfPrueba.getTrash().size();a++){
  67.     //System.out.println("Palabras basuras : "+pdfPrueba.getTrash().get(a));
  68.  
  69.     }
  70.    }  
  71.  
  72.     //FIN PRUEBA HASHMAP
  73.  
  74.     //Resto de codigo respaldado en mis documentos...
  75.  }catch( FileNotFoundException e ){
  76.             e.printStackTrace();
  77.     }
  78. }
  79. }
  80. }]

y aca el metodo que modifique para que considere las palabras vetadas
Código
  1. public Boolean compararLinea(String linea){
  2. for(int i=0;i<trash.size();i++){
  3. //if(trash.get(i).toString().equalsIgnoreCase(linea))
  4. if(trash.get(i).toString().contains(linea))
  5. {
  6. return true;
  7. }
  8. }
  9. return false;
  10. }
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
transformar y cambiar las palabras de un archivo.txt con java
Ejercicios
roby79 0 6,372 Último mensaje 11 Mayo 2012, 04:15 am
por roby79
Como generar combinaciones de palabras para diccionario de fuerza bruta
Hacking
aleiyo 1 5,126 Último mensaje 16 Enero 2013, 22:05 pm
por hacelo
recorrer archivo binario
Programación C/C++
m@o_614 3 2,850 Último mensaje 25 Octubre 2013, 17:59 pm
por rir3760
Comparación de palabras en C
Programación C/C++
genuine17 2 1,671 Último mensaje 5 Junio 2017, 18:12 pm
por MAFUS
Recorrer un archivo recursivamente.
Programación C/C++
MatiDiyo 4 1,713 Último mensaje 8 Septiembre 2018, 05:27 am
por MatiDiyo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines