Author Topic: Aplicación para validar archivos  (Read 493 times)

vitocourt

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
    • View Profile
Aplicación para validar archivos
« on: Enero 30, 2018, 07:45:37 pm »
Hola foro,

En mi empresa se requiere crear un validador de archivos.

Se reciben los archivos csv pero me piden que cree una aplicación que valide la estructura del mismo. Algunas de las validaciones que se hacen son:

- Solo algunos tipos documentos de identidad (CC, CE, TI...)
- Largo de caracteres de cada tipo
- Validar que sean solo números o texto en algunos campos
- Muchas validaciones mas...

Al final lo que se quiere es que el aplicativo retorne dos archivos: 1 que sea el de realizar el cargue que ya no va a reventar al hacer el insert y el otro con los errores (y al final de cada línea el error), para que los corrijan.

Quisiera pedir su colaboración con una idea de como puedo tomar el archivo csv y almacenarlo de alguna forma (no sé si una matriz o una tabla temporal) y hacer el análisis de cada línea según la estructura de cada archivo.


Muchas gracias

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5447
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Aplicación para validar archivos
« Reply #1 on: Enero 30, 2018, 08:01:09 pm »
Hola:

Hay librerías para leer CVS, por ejemplo OpenCVS. Si la lectura falla, posiblemente la sintaxis está mal. Si lee correctamente, luego podrías ir validando los datos uno a uno.

Saludos.

vitocourt

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
    • View Profile
Re: Aplicación para validar archivos
« Reply #2 on: Enero 30, 2018, 08:51:47 pm »
Muchas gracias, leeré sobre la librería.

Otra duda... ¿Cómo me recomiendan leer el archivo?

1. Trabajarlo directamente en el archivo
2. Cargarlo a un jtable
3. Trabajarlo por matrices
4. Hay otra forma

Muchas gracias

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5447
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Aplicación para validar archivos
« Reply #3 on: Enero 30, 2018, 10:58:19 pm »
Hola:
Depende de lo que quieras
- Trabajarlo sobre el archivo. ¿Te permiten modificarlo o debes conservar el original?. No suele ser buena  idea trabajar directamente sobre archivos. Si no son muy grandes, mejor cargarlo en memoria y trabajar en memoria. Si son muy grandes, normalmente por bloques.
- Sobre JTable. ¿Necesitas que el usuario visualice el contenido del archivo?. Si no necesitas visualizarlo, no uses JTable.
- matrices, que es lo que te comentaba de cargarlo en memoria y trabajar ahí.

Saludos.

vitocourt

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
    • View Profile
Re: Aplicación para validar archivos
« Reply #4 on: Enero 31, 2018, 02:09:31 am »
Vale, muchas gracias...

La mejor opción en memoria. Pues es el menor consumo de recursos.

vitocourt

  • Newbie
  • *
  • Posts: 4
  • Karma: 0
    • View Profile
Re: Aplicación para validar archivos
« Reply #5 on: Febrero 02, 2018, 08:39:14 pm »
Definitivamente, no encuentro como solucionar este problema con opencsv

¿Podrían ayudarme porfa?

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/ObjectUtils
   at com.opencsv.CSVParser.<init>(CSVParser.java:209)
   at com.opencsv.CSVReader.<init>(CSVReader.java:196)
   at com.opencsv.CSVReader.<init>(CSVReader.java:178)
   at com.opencsv.CSVReader.<init>(CSVReader.java:130)
   at com.opencsv.CSVReader.<init>(CSVReader.java:70)
   at frontEnd.OpenCSV.main(OpenCSV.java:21)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.ObjectUtils
   at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
   ... 6 more

chuidiang

  • Administrator
  • Hero Member
  • *****
  • Posts: 5447
  • Karma: 12
    • View Profile
    • Apuntes de programación
Re: Aplicación para validar archivos
« Reply #6 on: Febrero 03, 2018, 03:46:48 am »
Un error "NoClassDefFoundError" suele deberse a que te falta alguna librería (algún jar) que añadir a tu proyecto. En este caso, el jar en el que esté la clase org.apache.commons.lang3.ObjectUtils.

Por el nombre, posiblemente ese jar esté aquí https://commons.apache.org/proper/commons-lang/  Prueba a descargarte esa librería y añadirla a tu proyecto.

Saludos.

 

ey