Título: [Ayuda]Lectura de Archivo txt
Publicado por: rolly21102 en 20 Junio 2011, 02:37 am
Hola amigos! Se me presenta el siguiente problema al momento de leer este txt.... empleados.txt 15680708,Patricia,Colmenares,30,Sistemas,5200 18909823,María,Castro,21,Contabilidad,2500 20012345,Carlos,Pérez,18,Sistemas,2100 6234561,Juan,Villamizar,45,Recursos Humanos,5500 4509002,Pedro,Rivero,62,Sistemas,6000 15897034,Diana,Soto,28,Mercadeo,4500 17098456,Ana,Montero,26,Mercadeo,2560 16732210,David,Gutiérrez,27,Recursos Humanos,3700
Necesito leer linea por linea para luego imprimirla tal y como sale en la imagen dependiendo del departamento que yo seleccione o le ingrese por un formulario... Esta es la clase con mis avances y donde me quede estancado <?php
class Empleados {
function listar_departamento($departamento) {
$archivo = 'empleados.txt'; $fp = fopen($archivo,'r');
$arreglo = array(); $i = 0;
while (!feof($fp)) {
/* while($a = fgetcsv($fp, 1000, ",")){
COMO PUEDO HACER PARA PREGUNTAR SI EL CAMPO 4 PERTENECE AL DEPARTAMENTO QUE LLEGÓ COMO PARAMETRO (Se que con if pero nose como hacer la comparativa con el campo 4)
Y AGREGAR LOS DATOS EXTRAIDOS EN UN ARREGLO ASOCIATIVO ?? */
}
fclose($fp);
// Y QUE A CONTINUACION VAYA GUARDANDO EN UNA VARIABLE DE CADENA ($cadena) LO QUE SE IMPRIMIRA EN PANTALLA, // COMENZANDO POR EL ENCABEZADO
foreach ($arreglo as $emp) {
// AQUI AGREGO LA FILA Y LAS COLUMNAS CON LOS DATOS DEL EMPLEADO
} $cadena .= '</table>';
return $cadena;
}
}
?>
(http://img405.imageshack.us/img405/3831/sinttuloma.jpg) (http://imageshack.us/photo/my-images/405/sinttuloma.jpg/) Uploaded with ImageShack.us (http://imageshack.us)
Título: Re: [Ayuda]Lectura de Archivo txt
Publicado por: Cicklow en 20 Junio 2011, 08:51 am
Hola este codigo te sera de ayuda, crea un array con los datos de los que coinciden y otro con los que no. Saludos. <?php $A = file_get_contents('iono.txt'); //Abrimos el file $B = preg_split("|[\r\n]+|i", $A, -1, PREG_SPLIT_NO_EMPTY); //parseamos por salto de linea
$DTO = array(); foreach($B as $C){ $D = preg_split("|,|sU",$C,-1,PREG_SPLIT_NO_EMPTY); //parseamos por , if($D[4] == $_GET['cual']){ //verificamos si coincide con el campo cual pasado por GET (url.com/?cual=Sistemas) $DTO['si'][] = array($D); }else{ $DTO['no'][] = array($D); } }
echo '<pre>';print_r($DTO); //Mostramos el array en pantalla ?> Para luego mostrar el resultado como quieres, solo tiens que poner //Para mostrar los que coinciden foreach($DTO['si'] as $T1){ echo $T1[0].' - '.$T1[1].'...'; }
//Para mostrar los que no coinciden foreach($DTO['no'] as $T1){ echo $T1[0].' - '.$T1[1].'...'; }
Saludos
Título: Re: [Ayuda]Lectura de Archivo txt
Publicado por: rolly21102 en 20 Junio 2011, 16:39 pm
Gracias papa ! Lo probaré y en un rato les comento como me fue..
Si tienen alguna otra sugerencia no duden en comentarla..
GRACIAS
Título: Re: [Ayuda]Lectura de Archivo txt
Publicado por: rolly21102 en 21 Junio 2011, 05:09 am
Amigo aun no he podido realizarlo.... Lo mas cercano que he podido hacer es esto y no me esta retornando el valor del arreglo con los empleados... Me sale esta pantalla despues que hago el envio de los departamentos... (http://img706.imageshack.us/img706/4756/sinttulohvc.png) (http://imageshack.us/photo/my-images/706/sinttulohvc.png/) Y Asi es como quedo mi codigo... index.html <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title> </head> <body> <center> <br /> <h1>Listar Empleados </h1> <br /> <form action="listado.php" method="post" id="departamentos" name="departamentos"> <table width="408" border="1"> <tr> <td width="200" height="173" align="center"><b>DEPARTAMENTOS</b></td> <td width="192"><input type="checkbox" name="departamentos[]" value="Contabilidad">Contabilidad <br /> <input type="checkbox" name="departamentos[]" value="Sistemas">Sistemas <br /> <input type="checkbox" name="departamentos[]" value="Mercadeo">Mercadeo <br /> <input type="checkbox" name="departamentos[]" value="Recursos Humanos">Recursos Humanos </td> </tr> <tr> <td height="39" colspan="2" align="center"><input type="submit" name="Submit" value="Listar"> </td> </tr> </table> </form> </center> </body> </html>
listado.php <?php
$departamentos = $_REQUEST["departamentos"]; include "empleados.class.php"; //$empleados = new Empleados($ordenar); $empleados = new Empleados($departamentos);
echo '<center>'; echo '<h2>Listado de Empleados</h2>';
foreach ($departamentos as $departamento) {
echo $empleados->listar_departamento($departamentos); echo '<br /><br />';
}
echo '</center>'; ?>
empleados.class.php <?php
class Empleados {
function listar_departamento($departamentos) {
$archivo = 'empleados.txt'; $fp = fopen($archivo,'r');
//$arreglo = array(); $i = 0; $cadena = array(); while (!feof($fp)) { while($a = fgetcsv($fp, 1000, ",")) { if($a[4]==$_REQUEST["departamentos"]){ $cadena[$i] = $a; $i++; } } }
fclose($fp);
foreach ($cadena as $emp) {
$cadena .= $emp."<br>"; }
return $cadena;
}
}
?>
empleados.txt 15680708,Patricia,Colmenares,30,Sistemas,5200 18909823,María,Castro,21,Contabilidad,2500 20012345,Carlos,Pérez,18,Sistemas,2100 6234561,Juan,Villamizar,45,Recursos Humanos,5500 4509002,Pedro,Rivero,62,Sistemas,6000 15897034,Diana,Soto,28,Mercadeo,4500 17098456,Ana,Montero,26,Mercadeo,2560 16732210,David,Gutiérrez,27,Recursos Humanos,3700
Le agradezco de antemano al que me heche una ayuda...
Título: Re: [Ayuda]Lectura de Archivo txt
Publicado por: Cicklow en 16 Julio 2011, 20:36 pm
Pero no estas usando el codigo que te puse... con mi codigo funciona bien!
Título: Re: [Ayuda]Lectura de Archivo txt
Publicado por: WHK en 17 Julio 2011, 01:00 am
<?php $data = get_data('empleados.txt'); function get_data($file){ if($buffer = explode('<br />', nl2br($buffer))){ /* Se adapta a tipo de salto MAC, Win y GNU */ foreach($buffer as $bff){ $data[$dat[4]][] = array( 'Cédula' => trim($dat[0]), 'Nombre' => trim($dat[1]), 'Apellido' => trim($dat[2]), 'Departamento' => trim($dat[4]), 'Salario' => trim($dat[5]) ); } } return $data; } ?>
Array ( [Sistemas] => Array ( [0] => Array ( [Cédula] => 15680708 [Nombre] => Patricia [Apellido] => Colmenares [Edad] => 30 [Departamento] => Sistemas [Salario] => 5200 )
[1] => Array ( [Cédula] => 20012345 [Nombre] => Carlos [Apellido] => Pérez [Edad] => 18 [Departamento] => Sistemas [Salario] => 2100 )
[2] => Array ( [Cédula] => 4509002 [Nombre] => Pedro [Apellido] => Rivero [Edad] => 62 [Departamento] => Sistemas [Salario] => 6000 )
)
[Contabilidad] => Array ( [0] => Array ( [Cédula] => 18909823 [Nombre] => María [Apellido] => Castro [Edad] => 21 [Departamento] => Contabilidad [Salario] => 2500 )
)
[Recursos Humanos] => Array ( [0] => Array ( [Cédula] => 6234561 [Nombre] => Juan [Apellido] => Villamizar [Edad] => 45 [Departamento] => Recursos Humanos [Salario] => 5500 )
[1] => Array ( [Cédula] => 16732210 [Nombre] => David [Apellido] => Gutiérrez [Edad] => 27 [Departamento] => Recursos Humanos [Salario] => 3700 )
)
[Mercadeo] => Array ( [0] => Array ( [Cédula] => 15897034 [Nombre] => Diana [Apellido] => Soto [Edad] => 28 [Departamento] => Mercadeo [Salario] => 4500 )
[1] => Array ( [Cédula] => 17098456 [Nombre] => Ana [Apellido] => Montero [Edad] => 26 [Departamento] => Mercadeo [Salario] => 2560 )
)
)
Te recomiendo cambiar edad por fecha de nacimiento porque el próximo año tendrás que modificar toda tu base de datos para cambiar todas las edades de cáda uno.
|