Cuando he tenido problemas como ese he tenido q "jalar" todo a una
estructura plana y luego, via programa, ir asignando todo a otra tabla,
sabiendo q el primer registro era nombre, el 2do telefono, el 3ero URL, el
4to OTRO, y de allí el ciclo, volviendo a traer en ese orden no,bre, tlf,
etc.
No es un programa muy complicado en realidad, sólo se requiere que todos los
registros tengan el mismo numero de lineas.
Suerte
Ezequiel Montoya
www.mpcomercial.com
----- Original Message -----
From: "Mikel Goni" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, June 12, 2006 11:19 AM
Subject: Re: [d_es] Re: ¿Cómo paso de texto plano a base de datos?
Hola!
Voy por pasos:
Orlando E. Acevedo S. wrote:
disculpa, como tinenes separados los campos? , en el primer correo no
queda claro, porque lo que se dice en el otro correo lo importante es
saber la separación de los registros, estando en linux mandriva es facil
determinar si estan claros los campos de cada registro en este caso un
salto de linea asi que
Los campos están separados por saltos de linea, es decir un campo es un
párrafo.
Nombre:Nombre del contacto
Teléfono: número de telfono
Url: url del contacto
etc...
el primer campo es Nombre, el segundo es Teléfono etc. pero no dice como
se separan los registros, si los registros se separan por un linea en
blanco entoces usamos awk para crear un archivo cvs
ejemplo tengo el archivo con los datos, asi lo leo con cat y obtengo el
listado
Los registros se separan por dos saltos de línea,
$cat archivo
Nombre:Orlando1
Telefono:234567
Url:http://cualquiera1.edu.co
Otro:adicional1
Nombre:Orlando2
Telefono:234567
Url:http://cualquiera2.edu.co
Otro:adicional2
Nombre:Orlando3
Telefono:234567
Url:http://cualquiera3.edu.co
Otro:adicional3
Nombre:Orlando4
Telefono:234567
Url:http://cualquiera4.edu.co
Otro:adicional4
Nombre:Orlando5
Telefono:234567
Url:http://cualquiera5.edu.co
Otro:adicional5
El problema aquí es que no todos los registros tienen los mismos campos.
En
algunos viene un campo para la url, en otros para el email, en otros un
contenedor de notas, telefono, dirección, etc...
en otros todo lo anterior en otros nada de lo anterior, etc
Si fueran registros regulares, es decir mismo número de campos y en el
mismo
orden en todos los registros, sería facil hacer una tabla de ellos con la
herramienta de OOorg para convertir texto en tabla.
Tomo awk y pongo que los registros corresponden a lineas vacias y que el
separador de campos es una linea nueva RS="";FS="\n"; ademas le agrego
que el separador de campos nuevo va a ser ";" o cualquier otro que no se
vaya a confundir con los datos entrados OFS=";" y por ultimo le doy que
me imprima la salida con todos los campos o tambien con campos escogidos
y ahora tengo que adecuarlo a mi salida, es decir debo quitar los
nombres de los campos, en este caso Nombre:, Telefono:, Url:, y Otro:
remplazando por nada esto lo hago con sed s/NombreCampo//g luego lo
grabo a un archivo tipo cvs
cat archivo |awk 'BEGIN {RS="";FS="\n";OFS=";"} {print $1,$2,$3,$4} '
|sed s/Nombre://g|sed s/Telefono://g|sed s/Url://g|sed s/Otro://g
>salida.cvs
cat salida.cvs
Orlando1;234567;http://cualquiera1.edu.co;adicional1
Orlando2;234567;http://cualquiera2.edu.co;adicional2
Orlando3;234567;http://cualquiera3.edu.co;adicional3
Orlando4;234567;http://cualquiera4.edu.co;adicional4
Orlando5;234567;http://cualquiera5.edu.co;adicional5
y listo haces lo demas que te dijeron a partir del archivo cvs
Gracias por vuestras respuestas
Mikel G
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]