Leer ficheros pero corroborando antes la estructura del mismo


([N3] ereitmann) #1

Hola, preciso leer un fichero cvs separado por comas, pero antes deberia chequear que los encabezados de las columnas tienen la estructura debida.
Lo que quiero hacer es chequear el titulo de los encabezados de las columnas y si es el correspondiente comenzar a leer desde la segunda linea,
Alguien sabe como hacerlo?
Muchas Gracias


([N1] Synetic) #2

Puedes empezar por este tutor: http://velneo.es/velneo-open-app/tutor-de-importacionexportacion-de-ficheros-ascii/
y modificar lo que necesites.


([N1] ebarbeito) #3

Hola,

Puedes emplear los comandos de proceso “APIVEL” para obtener el número de campos que tiene la tabla y obtener el nombre del campo por número de campo en la tabla. Te adjunto un fragmento de código que obtiene en una variable HDR los nombres de todos los campos de la tabla concatenados. Serviría para comparar HDR con tu primera línea en el CSV si es que quieres obligar a que los campos a importar sean fijos y deban tener un orden concreto.

Saludos


Enrique Barbeito García (@enriquebarbeito en twitter)
Mis demos en vatp://demo:@v7cloud3.velneo.com:7288 [attachment=25807,2008]




([N1] Pepeto) #4

Tambien puedes leer el fichero y guardarlo en una tabla temporal.
Luego lo procesas como mejor te parezca.

un saludo
José Luis
http://www.ascsl.com


([N3] ereitmann) #5

Muchas Gracias a todos… al final lo solucione de la siguiente manera :
corroboro leyendo la primer linea cada encabezado o titulo del campo (fijarse en el ejemplo del codigo) si es correcto pasa a leer las demas lineas y a importarlas si no es correcta al final dara un mensaje de error.

@ebarbeito: no probe tu solucion voy a probarla a ver si me resulta. y es precisamente lo que quiero es controlar que los campos sean fijos y con un orde concreto
@pepeto: por alli lei que las tablas en memoria ralentizan un poco los precesos, y como tengo que importar archivos con 5000 registros, y por cada registro hacer 3 o 4 busquedas tengo miedo de que se ponga muy lento.

si me tienen que hacer otras recomendaciones a lo hecho desde ya gracias [attachment=25824,2009]




([N1] Pepeto) #6

En mi respuesta, te comente hacer el proceso con una tabla “Temporal”, pero en ningun momento dije si la tabla debia ser en “Memoria” o “Disco”, asi que puedes realizar la operacion con el tipo de tabla que más te guste.

un saludo
José Luis
http://www.ascsl.com