Foros del Web » Programando para Internet » PHP »

capturar datos de un txt

Estas en el tema de capturar datos de un txt en el foro de PHP en Foros del Web. hola a todos necesito su ayuda Lo que pasa es que tengo estos datos en un archivo de texto y tengo que capturar solo algunos ...
  #1 (permalink)  
Antiguo 14/06/2012, 08:28
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
capturar datos de un txt

hola a todos necesito su ayuda

Lo que pasa es que tengo estos datos en un archivo de texto y tengo que capturar solo algunos datos de estos que son los que van despues de la palabra TIME 1:00- 2:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
por favor necesito de su ayuda no se como hacer la expresion regular para capturar esos datos

6-5-2012 3:25 PM - Report for Voice System name: Une calle 76 - list bcms skill 15 00:00 14:00

"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","0:00- 1:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","1:00- 2:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","2:00- 3:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","3:00- 4:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","4:00- 5:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","5:00- 6:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","6:00- 7:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:02","0.7",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","7:00- 8:00","1","1:33","0","0:00","3:11","0:00","0","0", "1:36","1.8","0"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","8:00- 9:00","1","0:08","0","0:00","2:47","0:00","0","0", "55:45","3.9","100"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","9:00-10:00","3","0:06","0","0:00","7:33","0:00","0","0" ,"22:52","4.0","100"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","10:00-11:00","7","0:03","0","0:00","10:39","0:00","0","0 ","39:15","4.0","100"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","11:00-12:00","5","0:06","1","0:27","4:53","0:00","0","0" ,"115:07","4.0","83"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","12:00-13:00","3","0:05","0","0:00","2:59","0:00","0","0" ,"34:57","3.2","100"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","13:00-14:00","4","0:12","0","0:00","2:46","0:00","0","0" ,"68:47","2.4","75"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","-----------","-----","-----","----","-----","-----","-------","----","----","-------","-----","---"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","SUMMARY","24","0:10" ,"1","0:27","6:09","0:00","0","0","338:21","1.7"," 88"
  #2 (permalink)  
Antiguo 14/06/2012, 08:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: capturar datos de un txt

No necesitas expresiones regulares, al parecer el formato es un CSV estándar.

Te sugiero investigar en el manual funciones para tratar ese tipo de formatos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 14/06/2012, 08:33
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: capturar datos de un txt

Cita:
Iniciado por wendyl Ver Mensaje
hola a todos necesito su ayuda

Lo que pasa es que tengo estos datos en un archivo de texto y tengo que capturar solo algunos datos de estos que son los que van despues de la palabra TIME 1:00- 2:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
por favor necesito de su ayuda no se como hacer la expresion regular para capturar esos datos

6-5-2012 3:25 PM - Report for Voice System name: Une calle 76 - list bcms skill 15 00:00 14:00

"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","0:00- 1:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","1:00- 2:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","2:00- 3:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","3:00- 4:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","4:00- 5:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","5:00- 6:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:00","0.0",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","6:00- 7:00","0","0:00","0","0:00","0:00","0:00","0","0", "0:02","0.7",""
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","7:00- 8:00","1","1:33","0","0:00","3:11","0:00","0","0", "1:36","1.8","0"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","8:00- 9:00","1","0:08","0","0:00","2:47","0:00","0","0", "55:45","3.9","100"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","9:00-10:00","3","0:06","0","0:00","7:33","0:00","0","0" ,"22:52","4.0","100"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","10:00-11:00","7","0:03","0","0:00","10:39","0:00","0","0 ","39:15","4.0","100"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","11:00-12:00","5","0:06","1","0:27","4:53","0:00","0","0" ,"115:07","4.0","83"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","12:00-13:00","3","0:05","0","0:00","2:59","0:00","0","0" ,"34:57","3.2","100"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","13:00-14:00","4","0:12","0","0:00","2:46","0:00","0","0" ,"68:47","2.4","75"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","-----------","-----","-----","----","-----","-----","-------","----","----","-------","-----","---"
"BCMS SKILL REPORT","EMTELCO","3:29 pm TUE JUN 5, 2012","Skill:","15","Skill Name:","LAI_VOZ","20","TIME","SUMMARY","24","0:10" ,"1","0:27","6:09","0:00","0","0","338:21","1.7"," 88"
Tengo este codigo php
Código PHP:
<?php
    header 
('refresh: 1; url=actualizar_bd_skill12.php');

    
//Conexion BD
    
include ("conexion.php");
    
$Link=conexion();
    
     
//Elimina toda la data de la tabla 
    
$mysql mysql_query("DELETE FROM skill12") or die ("Problemas al eliminar informacion. ".mysql_error()); 
    
    
//Cargar archivo y almacenarlo como texto 
    
$archivo fopen("REPORTES/report_monitor_bcms_skill_12.txt","r");
    
$textoarchivo show_source("REPORTES/report_monitor_bcms_skill_12.txt",True);
    
    
//dividir la cabecera del contenido
    
$dividir=explode("\n",$textoarchivo);
    
//ejecutar expresion regular para obtener los datos
    
$resultado=preg_split('/[~~.~~]/'$dividir[1]);
    
    
$primeralinea=True;
    
    
//Creacion de la tabla
    
echo "<table border=1><tr>";
    echo 
"<td>Agent_name</td>";
    echo 
"<td>Login_id</td>";
    echo 
"<td>Extension</td>";
    echo 
"<td>State</td>";
    echo 
"<td>Time</td>";
    echo 
"<td>Acd_calls</td>";
    echo 
"<td>Ext_out_calls</td>";
    echo 
"<td>Ext_in_calls</td>";
    echo 
"</tr>";
    
$sql="INSERT INTO skill12 (agent_name, login_id,extension,state,time,acd_calls,ext_out_calls,ext_in_calls) VALUES (";
    
    
//contador para recorrer resultado expresion regular
    
foreach($resultado as $valor){
        if(
$valor!=="<br>" && $valor!==""){
            
//la primera linea no la usaremos entonces omitimos esta
            
if($primeralinea){
                
$primeralinea=False;
            }else{
                
//expresion regular para dividir los datos
                
$linea preg_split("/[\".\"]/"$valor);
                echo 
"<tr>";
                
$contador=0;
                foreach(
$linea as $final){
                    if(
$final!=="," && $final!==""){
                        
//se acabo los campos y dejar de crear celdas en la tabla
                        
if($contador>7){    
                            
//FINAL DE TEXTO
                        
}else{ 
                            
$contador++;
                            
$sql.="'".$final."',";
                            echo 
"<td>".$final."</td>";
                        }
                    }
                }
                echo 
"</tr>";
                
//quitarle coma al final y agregar cierre de parentesis para el texto de la consulta sql
                
$sql=trim($sql,",").")";
                
//EJECUTAR CONSULTA 
                
echo $sql."<br>";
                
$mysql=mysql_query($sql) or die ("problemas en el insert".mysql_error());
                
$sql="INSERT INTO skill12 (agent_name, login_id,extension,state,time,acd_calls,ext_out_calls,ext_in_calls) VALUES (";
            }
        }
    }
    echo 
"</table><br>";
    
    
//Elimina toda la data de la tabla 
    
$mysql mysql_query("DELETE FROM general") or die ("Problemas al eliminar informacion. ".mysql_error()); 
     
/*Inicia codigo para recuperar los otros dos datos*/  
      
    //Creacion de la tabla  
    
echo "<br />";  
    echo 
"<table border=1>";  
    echo 
"<tr>";  
    echo 
"<td>Llamadas en cola</td>";  
    echo 
"<td>Tiempo llamada</td>";  
    echo 
"</tr>";  
       
    
$resultado=preg_split('/^[.~~]/'$dividir[1]);  
         
     
$sql="INSERT INTO general (Llamadas_cola, tiempo_llamada) VALUES ("
  
    foreach(
$resultado as $valor)  
    {  
        if(
$valor!=="<br>" && $valor!=="")  
        {  
            
//la primera linea no la usaremos entonces omitimos esta  
            
if($primeralinea)  
            {  
                
$primeralinea=False;  
            }else  
            {  
                
//expresion regular para dividir los datos  
                
$linea preg_split("/[\".\"]/"$valor);  
                echo 
"<tr>";  
                
$contador=0;  
                  
                foreach(
$linea as $final)  
                {  
                    if(
$final!=="," && $final!=="")  
                    {  
                        
//se acabo los campos y dejar de crear celdas en la tabla  
                        
if($contador == || $contador == )  
                        {      
                            echo 
"<td>".$final."</td>";  
                             
$sql .= "'".$final."',";
                        }  
                          
                        
$contador++;  
                         
                    }  
                }  
              
                echo 
"</tr>";  
                
//quitarle coma al final y agregar cierre de parentesis para el texto de la consulta sql  
                
$sql=trim($sql,",").")";  

                
//EJECUTAR CONSULTA   
                
echo $sql."<br>";  
                  
                
$mysql=mysql_query($sql) or die ("problemas en el insert".mysql_error());  
                 
                
//$sql="INSERT INTO general (Llamadas_cola, tiempo_llamada) VALUES (";  
           
                
echo "</table>";  
                  
            }  
        }  
    }  
mysql_close($Link);
?>
no se como podre modificarlo para que me traiga solo los datos que yo quiero
  #4 (permalink)  
Antiguo 14/06/2012, 08:42
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: capturar datos de un txt

creo que siempre es mas sencillo utilizar las herramientas del lenguajes para manejar este tipo de archivos http://www.php.net/manual/en/ref.filesystem.php ó http://www.php.net/manual/en/class.splfileobject.php, revisa un poco y ahí de seguro allas la respuesta
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #5 (permalink)  
Antiguo 15/06/2012, 08:10
 
Fecha de Ingreso: marzo-2012
Ubicación: Bogota
Mensajes: 177
Antigüedad: 12 años
Puntos: 2
Respuesta: capturar datos de un txt

Cita:
Iniciado por carlos_belisario Ver Mensaje
creo que siempre es mas sencillo utilizar las herramientas del lenguajes para manejar este tipo de archivos http://www.php.net/manual/en/ref.filesystem.php ó http://www.php.net/manual/en/class.splfileobject.php, revisa un poco y ahí de seguro allas la respuesta
Hola me podrias explicar un poco sobre ese tema la verdad no entiendo muy bien esas funciones que pena la ignorancia
Te lo a gradezco si me pudieras ayudar Gracias

Etiquetas: txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:24.