Ver Mensaje Individual
  #18 (permalink)  
Antiguo 29/04/2006, 08:13
Avatar de tonymontana
tonymontana
 
Fecha de Ingreso: abril-2006
Mensajes: 27
Antigüedad: 18 años, 8 meses
Puntos: 0
Uamistad:
Entiendo mas o menos como funciona srt_pad, pero lo que no logro entender es como incorporar la nueva variable cantidad a lo que estoy haciendo.
Puedes incluirla en lo que ya tengo?
Mira:

Código PHP:
<?
function parseadora($entrada){
    
//Consideraciones:
    //Te ayudo con la primera parte, lo que sigue es seguir fabricando
    //la expresión regular correcta.

    //para ahorrar código, meteré esto que se usa con frecuencia en $nl
    //la parte de las letras la metí por la F que aparece en tu ejemplo
    
$nl "[0-9a-zA-Z]+";

    
//La siguiente línea comentada muestra qué es lo que estaría extrayendo la expr.reg.
    //                       "1;    1;   4010.   39.   00.   000F;     0,   1916;  9999,  99;      1;   9,58;     7;  0,00"
    
$expresion_regular "^($nl);($nl);($nl)\.($nl)\.($nl)\.($nl);($nl)\,($nl);($nl)\,($nl);($nl);($nl)\,($nl);.*";

    
//nos ayudará a separar los pedazos en $pedazos[1], $pedazos[2]...
    
ereg($expresion_regular,$entrada,$pedazos);
    
    
//CONSTRUYENDO POCO A POCO LA EXPRESIÓN 'RESULTADO'

    //concatenamos los primeros tres pedazos
    
$resultado $pedazos[1].$pedazos[2].$pedazos[3];

    
//ahora se rellenan con ceros a la izquierda hasta tener un número de 11 dígitos
    
$resultado str_pad($resultado,11,0,STR_PAD_LEFT);
    

    
//bien, ahora los siguientes tres pedazos nada más se concatenan con puntos...
    
$resultado .= '.'.$pedazos[4].'.'.$pedazos[5].'.'.$pedazos[6].'_____'.$pedazos[7];
    
    
//ahora se rellenan con ceros a la derecha hasta tener un número de 39 dígitos
    
$resultado str_pad($resultado,39,0,STR_PAD_RIGHT);
    
     
//bien, sigo insertando los pedazos.
    
$resultado .= ','.$pedazos[8];
    
    
//ahora se rellenan con ceros a la derecha hasta tener un número de 70 dígitos
    
$resultado str_pad($resultado,50,0,STR_PAD_RIGHT);
    
    
//bien, sigo insertando los pedazos.
    
$resultado .= ''.$pedazos[9];
    
$resultado .= ','.$pedazos[10];
    
$resultado .= ''.$pedazos[11];

    
    
//ahora se rellenan con ceros a la derecha hasta tener un número de 70 dígitos
    
$resultado str_pad($resultado,70,0,STR_PAD_RIGHT);
    
$resultado .= ''.$pedazos[12];

    
$resultado .= ','.$pedazos[13];
    return 
$resultado;
    }
//end function

?>
Aquí una muestra de como va quedando:
w w w.pellegrinioscarv.com.ar/control/operaciones-leo.php

Última edición por tonymontana; 29/04/2006 a las 08:25