require_once('../include/orm.php');
require_once('../include/globals.php');
require_once('../include/util.php');
$_import_textoanchofijo_db_connected = $Link == '';
if($_import_textoanchofijo_db_connected) $Link = connectDb();
debugstartpage();
if( isset($_x) ) {
$_x = StringTokenize($_x, ",");
$_result = array();
$_initialvars = arrayExclude(get_defined_vars(), array("_*", "s_*", "GLOBALS", "Link", "thisname"));
}
require('../include/base.events.php');
// aca iba session get, uofr y load/saveobject
while( has($_x, 'import1') ) {
//if( $errors == "" )
// validateimport1();
if( $errors == "" ) {
if( $errors == "" ) {
// Parsea formato
$matrix = array();
$columnas = array();
$types = array();
$aformato = StringTokenize($formato);
// Titulos
foreach($aformato as $columna) {
$columna = trim($columna);
if( $columna == '' ) continue;
$tpos = strpos($columna, ' ');
if( $tpos === false ) $tpos = strpos($columna, chr(9));
$nombre = substr($columna, 0, $tpos);
$tamano = trim(substr($columna, $tpos));
$enteros = "";
$decimales = "";
if( strpos($tamano, '(') !== false ) {
$enteros = substr($tamano, strpos($tamano, '(') + 1, strpos($tamano, ',') - strpos($tamano, '(') );
$decimales = substr($tamano, strpos($tamano, ',') + 1, strpos($tamano, ')') - strpos($tamano, ',') - 1 );
$tamano = substr($tamano, 0, strpos($tamano, '('));
}
if( $enteros == '' )
$types[] = "varchar($tamano)";
else
$types[] = "decimal($tamano, $decimales)";
$columnas[] = $nombre;
}
//print_r($types);
// Datos
$lineas = StringTokenize($texto);
foreach($lineas as $linea) {
$linea = trim($linea);
if( $linea == '' ) continue;
$fila = array();
$pos = 0;
foreach($aformato as $ii => $columna) {
$columna = trim($columna);
if( $columna == '' ) continue;
$tpos = strpos($columna, ' ');
if( $tpos === false ) $tpos = strpos($columna, chr(9));
$enteros = "";
$decimales = "";
$tamano = trim(substr($columna, $tpos));
if( strpos($tamano, '(') !== false ) {
$enteros = substr($tamano, strpos($tamano, '(') + 1, strpos($tamano, ',') - strpos($tamano, '(') );
$decimales = substr($tamano, strpos($tamano, ',') + 1, strpos($tamano, ')') - strpos($tamano, ',') - 1 );
$tamano = substr($tamano, 0, strpos($tamano, '('));
}
$valor = substr($linea, $pos, $tamano);
if( $enteros != "" ) {
$valor = substr($valor, 0, $enteros) + substr($valor, $enteros) / 100;
}
$fila[$columnas[$ii]] = $valor; // . "[" . $tamano . " " . $enteros . " " . $decimales . "]";
$pos += $tamano;
}
$matrix[] = $fila;
}
// Resultado
switch($tab1) {
case 'tab_texto':
case '':
// Muestra como tabla
$resultado = matrixtohtml($matrix, false);
$tab1 = 'tab_confirmar';
break;
case 'tab_confirmar':
// Crea tabla en base si no existe
$val = mysql_query("select 1 from $nombretabla LIMIT 1");
if( $val === false ) {
$sqlcreate = "create table $nombretabla( ";
foreach($columnas as $ii => $columna) {
if( $ii > 0 ) $sqlcreate .= ", ";
$sqlcreate .= $columna . " " . $types[$ii];
}
$sqlcreate .= ")";
sqlexec($Link, $sqlcreate);
print($sqlcreate);
print("
");
}
// Inserta registros
foreach($matrix as $row) {
$row2 = array();
$ii = 0;
foreach($row as $name => $value) {
if( startsWith($types[$ii] , 'varchar') )
$row2[$name] = "'" . mysql_escape_string($value) . "'";
else
$row2[$name] = $value;
$ii++;
}
sqlinsert($Link, $nombretabla, $row2);
}
print("Inserted " . sizeof($matrix) . " on $nombretabla");
break;
}
// Si puso header location para ir a otra pagina cierra el script
if( !isset($_x) and $__exiting ) {
disconnectDb($Link); exit(0);
}
}
if( $_redirect != "" ) redirect($_redirect);
sessionset('form_import1' . $id, $import1);
}
break;
}
while( has($_x, 'import1__delete') ) {
//if( $errors == "" )
// validateimport1();
if( $errors == "" ) {
if( $_redirect != "" ) redirect($_redirect);
sessionset('form_import1' . $id, null);
if( $_result['redirect'] == '' ) {
$_result['redirect'] = "?message=Importación de texto con columnas de ancho fijo eliminada";
}
}
break;
}
//$import1 -> $_result['changes']
?> if( !isset($_x) ) { ?>