elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [Ayuda]Lectura de Archivo txt
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda]Lectura de Archivo txt  (Leído 3,984 veces)
rolly21102

Desconectado Desconectado

Mensajes: 95


Ver Perfil
[Ayuda]Lectura de Archivo txt
« en: 20 Junio 2011, 02:37 am »

Hola amigos! Se me presenta el siguiente problema al momento de leer  este txt....

empleados.txt

Código:
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

Código:
<?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;

}

}

?>



Uploaded with ImageShack.us


« Última modificación: 20 Junio 2011, 02:58 am por rolly21102 » En línea

Cicklow


Desconectado Desconectado

Mensajes: 604


-=Cicklow SOFT®=-


Ver Perfil WWW
Re: [Ayuda]Lectura de Archivo txt
« Respuesta #1 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.
Código:
<?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
Código:
	//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


En línea

www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio
rolly21102

Desconectado Desconectado

Mensajes: 95


Ver Perfil
Re: [Ayuda]Lectura de Archivo txt
« Respuesta #2 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
En línea

rolly21102

Desconectado Desconectado

Mensajes: 95


Ver Perfil
Re: [Ayuda]Lectura de Archivo txt
« Respuesta #3 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...



Y Asi es como quedo mi codigo...

index.html
Código:
<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
Código:
<?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
Código:
<?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
Código:
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...
En línea

Cicklow


Desconectado Desconectado

Mensajes: 604


-=Cicklow SOFT®=-


Ver Perfil WWW
Re: [Ayuda]Lectura de Archivo txt
« Respuesta #4 en: 16 Julio 2011, 20:36 pm »

Pero no estas usando el codigo que te puse... con mi codigo funciona bien!
En línea

www.cicklow.com . Solo Soy Un Ciego que Ve El Sonido Del Silencio
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.606


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [Ayuda]Lectura de Archivo txt
« Respuesta #5 en: 17 Julio 2011, 01:00 am »

Código
  1. <?php
  2. $data = get_data('empleados.txt');
  3. print_r($data);
  4.  
  5. function get_data($file){
  6. $buffer = file_get_contents('empleados.txt');
  7. if($buffer = explode('<br />', nl2br($buffer))){ /* Se adapta a tipo de salto MAC, Win y GNU */
  8. foreach($buffer as $bff){
  9. $dat = explode(',', $bff);
  10. $data[$dat[4]][] = array(
  11. 'Cédula' => trim($dat[0]),
  12. 'Nombre' => trim($dat[1]),
  13. 'Apellido' => trim($dat[2]),
  14. 'Edad' => trim($dat[3]),
  15. 'Departamento' => trim($dat[4]),
  16. 'Salario' => trim($dat[5])
  17. );
  18. }
  19. }
  20. return $data;
  21. }
  22. ?>

Código:
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.
« Última modificación: 17 Julio 2011, 01:06 am por WHK » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
foto lectura, y lectura veloz, scanning y otros metodos de lectura rapida....
Foro Libre
Kase 3 13,004 Último mensaje 4 Febrero 2014, 08:47 am
por camilo_
[AYUDA] Crear Archivo Excel de Solo lectura !
Programación Visual Basic
sebah97 1 4,619 Último mensaje 29 Mayo 2010, 21:57 pm
por seba123neo
Ayuda Con Lectura Archivo en c++
Programación C/C++
ZedGe 2 2,708 Último mensaje 23 Diciembre 2011, 20:32 pm
por ZedGe
Ayuda con la lectura de un fichero
Programación C/C++
DarkSorcerer 3 2,438 Último mensaje 22 Noviembre 2013, 02:43 am
por Vaagish
Ayuda con lectura de archivo txt!! no funciona mi if
.NET (C#, VB.NET, ASP)
SrTrp 1 1,982 Último mensaje 29 Octubre 2018, 06:07 am
por SrTrp
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines