• Publicidad

Leer archivo CSV e insertarlo en MySQL

¿Estás desarrollando un proyecto, o piensas hacerlo? Pon aquí tu propuesta, lo más seguro es que alguien esté interesado en ayudarte.

Leer archivo CSV e insertarlo en MySQL

Notapor rafilla » 2012-01-17 14:20 @639

Hola, me presento: soy Rafael, estoy aprendiendo Perl, la verdad soy muy nuevo en esto.

Éste lo acabo de hacer pero está sujeto a cambios y mejoras. Por lo pronto solo lee el archivo y lo inserta en una tabla de MySQL, por si a alguien le sirve.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl -w
  2. use warnings;
  3. use strict;
  4.  
  5. use lib '/modules';
  6. use azdb;
  7.  
  8. my $dbh = azdb->connect_callcenterdb();
  9.  
  10. my @lines = ();
  11. my $line  = "";
  12. open( CSV, "<", "tablacsv1.csv" ) or die("Can not open input file: $!");
  13. @lines = <CSV>;                        #Lines
  14. close(CSV);
  15.  
  16. my @data = parse_csv( shift(@lines) );
  17. foreach my $line (@lines) {
  18.     @data = parse_csv($line);          #
  19.  
  20.     $dbh->do("INSERT INTO test.pruebarafa VALUES (null, '$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]')");
  21.     print "INSERT INTO test.pruebarafa VALUES (null, '$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]'   ";
  22.  
  23.     #Returns an array with all the fields of a row from the csv file
  24.     sub parse_csv {
  25.         my $text = shift;
  26.         my @new  = ();
  27.         push( @new, $+ ) while $text =~ m{
  28.        "([^\"\\]*(?:\\.[^\"\\]*)*)",?
  29.            |  ([^,]+),?
  30.            | ,
  31.        }gx;
  32.  
  33.         #The regex above splits each file by comma and ignores a comma between " "
  34.         push( @new, undef ) if substr( $text, -1, 1 ) eq ',';
  35.         return @new;
  36.     }
  37. }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Estoy tratando de hacer un sistema que lea archivo CSV y los guarde en sus propias tablas,
para mostrarlos acomodados en un Website. Son web schedules lo que quiero hacer.
Última edición por explorer el 2012-01-17 14:28 @644, editado 1 vez en total
Razón: Formateado de código con Perltidy y poner marcas Perl
rafilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-01-16 12:29 @562

Publicidad

Re: Leer archivo CSV e insertarlo en MySQL

Notapor explorer » 2012-01-17 14:33 @648

Bienvenido a los foros de Perl en español, rafilla.

Aquí estaremos para cuando te atasques.

Recuerda que hay un foro dedicado a Proyectos, que quizás es más acorde con lo que quieres hacer, mientras que este de Básico, es más para resolver dudas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Leer archivo CSV e insertarlo en MySQL

Notapor rafilla » 2012-01-17 14:37 @651

Ok, explorer, desconocía esa sección pero la tomaré en cuenta ya que es bastante complicado el proyecto que intento hacer, al menos para mi. Cuando tenga más avances se los publico en la sección antes mencionada.

P.D. Sorry por la falta de acentos. Este teclado está configurado para inglés.
rafilla
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2012-01-16 12:29 @562


Volver a Proyectos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado