BLOG

Importación de una base de datos en texto plano

Por [N4] vromero.velneo el | 9 Comments

Antes de nada, me presento pues soy un nuevo miembro del equipo de Desarrollo de Velneo y este es mi primer post para vosotros. Mi nombre es Víctor (vromero será mi firma) y a partir de ahora me tendréis por aquí.

En este post os explicaré la caja de datos “Plantas” que tenéis disponible en vuestros servidores Beta. El fin de esta caja de datos era mostrar el proceso de importación de un típico fichero .txt de base de datos, pues en procesos de migración es relativamente probable que tengáis esa necesidad.

El fichero a migrar sería por ejemplo:

"ABELI","","Abelia R. Br.","abelia","Caprifoliaceae"

“ABES”,”HIES”,”Hibiscus esculentus L.”,””,”Malvaceae”

“ABIES”,””,”Abies Mill.”,”fir”,”Pinaceae”

Y el proceso CARGAR_PLANTAS sería quien lo importa. A continuación os describo las funciones que lo forman.

En primer lugar hay que acceder al fichero .txt en cuestión, para ello lo seleccionamos con “Ventana de selección de fichero” y lo abrimos con “Fichero: Abrir”. Posteriormente entramos en un bucle que iterará mientras “Fichero: Leer línea” devuelva que quedan líneas por leer.

Para cada línea leída damos de alta 2 fichas, una de farmacología, asignando a la planta aleatoriamente en función de un contador, y otra de planta, cuyos datos leemos del fichero .txt.

El proceso de alta de ficha en una tabla, sigue siendo el mismo, “Crear nueva ficha en memoria”, “Modificar campo”, y “Alta de ficha”.

La forma de leer los datos particulares de una línea se hace con “stringSection”, que dada una cadena con los datos, una subcadena separadora de campos, y un número de posición del campo, extrae la información de la línea para insertarla en el campo correspondiente. Viendo el código, veréis que no tiene mayor dificultad.

Si se desea eliminar las comillas de los campos de datos podríamos usar “removeString”, o para eliminar posiciones concretas, “removeCharAt”. Si habéis echado un ojo a las funciones de manipulación de cadenas habréis observado que ya hay todas las necesarias para cualquier tratamiento que necesitéis.

Por último en los procesos “BUSCAR_” tenéis un ejemplo de proceso de ficha para lanzar una URL creada dinámicamente, al navegador por defecto.

Velneo es el entorno ágil para el desarrollo
de aplicaciones empresariales

PRUEBA VELNEO

9 Responses to "Importación de una base de datos en texto plano"
  1. fjpnovo dice:

    Buenos dias:

    Entendido. Yo este fin de semana he estado haciendo procesos de prueba para dar altas y borrar fichas, pero los he perdido debido al problema posteado en el hilo de novedades de la beta actual.

    Un saludo,

    Fran.

  2. jc dice:

    Una duda

    Si los campos en el archivo txt estuvieran separados por ; pero no delimitados por comillas ¿Se podría importar de la misma forma?

    Gracias

    Juan Carlos

  3. fjpnovo dice:

    Buenos dias:

    Creo que hay un bug en la función StringSection. Al pinchar sobre la misma en la lista de funciones, esta se asigna a la parte izquierda del editor de fórmulas de esta manera:

    stringSection(cadena, separador, posicion, existeSepIni, existeSepFin)

    Pero la i del parámetro existeSepIni aparece en verde y en cursiva, cosa que no sucede con el resto de parámetros. Al sustituir los nombres de los parámetros por valores reales, si sólo sustituimos la parte escrita en negro quedaría:

    stringSection(“Cadena”, “;”, 1, 0i, 0)

    En este caso la i después del primer 0 sigue en verde y en cursiva y, claro esta, el inspector detecta un error de sintaxis que desaparece al borrar la i.

    Un saludo,

    Fran.

  4. vromero dice:

    Buenos días:

    Respondiendo a Juan Carlos, la respuesta es que sí.

    La función usaría “;” como separadores de campo, indiferentemente de que estén o no limitados con comillas, que a efectos prácticos para este caso se comportarían como un caracter más.

    La única diferencia sería que obtendríamos CAMPO en lugar de “CAMPO”.

    Un saludo.

  5. vromero dice:

    Buenos días Fran,

    efectivamente he comprobado que cuando tienes definida una variable “I” anteriormente, el editor toma la “i” del final de la palabra existeSepIni como una representación de esa variable, lo que no es correcto.

    Tomamos nota del error, muchas gracias.

    Un saludo

    Víctor

  6. fjpnovo dice:

    Buenas tardes:

    No me había dado cuenta de que la i se refería a una variable local definida con ese nombre.

    He hecho la prueba de crear un variable local n y añadir la siguiente función en el asistente de fórmulas:

    numberToString(numero, formato, precision)

    Sucede lo mismo con la n final del parámetro precision, pero no sucede con la inicial del parámetro numero.

    Un saludo,

    Fran.

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies