elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 13:07  


Tema destacado: Suscripción al boletín mensual de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  [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 1,130 veces)
rolly21102

Desconectado Desconectado

Mensajes: 92


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

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 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 »

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: 92


Ver Perfil
Re: [Ayuda]Lectura de Archivo txt
« Respuesta #2 en: 20 Junio 2011, 16:39 »

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: 92


Ver Perfil
Re: [Ayuda]Lectura de Archivo txt
« Respuesta #3 en: 21 Junio 2011, 05:09 »


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 »

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
吴阿卡
Ex-Staff
*
Desconectado Desconectado

Mensajes: 4.113


The Hacktivism is not a crime


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

Código
<?php
$data = get_data('empleados.txt');
print_r($data);
 
function get_data($file){
$buffer = file_get_contents('empleados.txt');
if($buffer = explode('<br />', nl2br($buffer))){ /* Se adapta a tipo de salto MAC, Win y GNU */
foreach($buffer as $bff){
$dat = explode(',', $bff);
$data[$dat[4]][] = array(
'Cédula' => trim($dat[0]),
'Nombre' => trim($dat[1]),
'Apellido' => trim($dat[2]),
'Edad' => trim($dat[3]),
'Departamento' => trim($dat[4]),
'Salario' => trim($dat[5])
);
}
}
return $data;
}
?>

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 por WHK » En línea

Mi foro Ultra Off-Topics: http://whk.drawcoders.com/foro/

Gracias a todos! Good bye!
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Archivo de solo lectura
Software
Vetsy 1 298 Último mensaje 28 Junio 2005, 21:23
por Rey11
foto lectura, y lectura veloz, scanning y otros metodos de lectura rapida....
Foro Libre
Kase 2 6,360 Último mensaje 11 Noviembre 2008, 04:15
por Kase
Problema con lectura archivo cap
Wireless en Windows
matuteiscar 2 1,278 Último mensaje 25 Julio 2009, 16:36
por matuteiscar
[AYUDA] Crear Archivo Excel de Solo lectura !
Programación Visual Basic
sebah97 1 1,982 Último mensaje 29 Mayo 2010, 21:57
por seba123neo
Ayuda Con Lectura Archivo en c++
Programación C/C++
ZedGe 2 350 Último mensaje 23 Diciembre 2011, 20:32
por ZedGe
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines