Foros del Web » Programando para Internet » PHP »

como modificar un txt? !!!!

Estas en el tema de como modificar un txt? !!!! en el foro de PHP en Foros del Web. Buen dia estimados amigos, necesito una ayuda en este problema que estoy seguro Uds, podran hacerlo. Es el siguente, tengo una archivo rweb.txt que cargo ...
  #1 (permalink)  
Antiguo 05/11/2003, 14:36
Avatar de libiob  
Fecha de Ingreso: julio-2003
Ubicación: Lima
Mensajes: 125
Antigüedad: 20 años, 9 meses
Puntos: 1
Pregunta como modificar un txt? !!!!

Buen dia estimados amigos, necesito una ayuda en este problema que estoy seguro Uds, podran hacerlo.

Es el siguente, tengo una archivo rweb.txt que cargo al servidor con los siguientes datos:
Código PHP:
ID fecha cantidad

 1
,29/10/031
 2
,30/10/032
 3
,31/10/033
 4
,01/11/034
 5
,02/11/035
 6
,03/11/0310 
Estos es un reporte que recibo de un programa, lo que sucede es que necesito cambiar el orden de la separacion central (fecha)
ejem:

De: 1,01/11/03, 1 a: 1,03/11/01

para todas las filas de este archivo que cual luego cargo al MySQL "ID(int), fecha(date), cantidad(char)

Muchas gracias por la ayuda.

Saludos
  #2 (permalink)  
Antiguo 05/11/2003, 16:32
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
y por que no hacer todo en un solo paso, es decir, leer el archivo linea a linea, hacer los cambios correspondientes y guardar en la base de datos?

- para abrir el archivo usas fopen(),
- para leer las lineas usas fgets()
- para tomar los valores separados por comas usas explode() que te las deja en un arreglo
- luego modificas la cadena de fech y grabas

* para uso de funciones de archivos:
http://www.php.net/manual/es/ref.filesystem.php

*para uso de funciones de cadena
http://www.php.net/manual/es/ref.strings.php
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #3 (permalink)  
Antiguo 05/11/2003, 19:48
Avatar de libiob  
Fecha de Ingreso: julio-2003
Ubicación: Lima
Mensajes: 125
Antigüedad: 20 años, 9 meses
Puntos: 1
La solucion

Gracias de todos modos, gracias a la insistencia logre hacer el codigo necesario para solucionar mi problema y lo comparto con quien alguna vez lo necesite
Código PHP:
// MODIFICA LOS DATOS DEL TXT, CAMBIAMOS LA FECHA DD/MM/YY A YY/MM/DD
$txt=fopen("WEB.TXT","r+");
$xx=fopen("nweb.txt","w");
while (!
feof($txt))
  {
    
$txt2=fgets($txt4096);
    
$dato "$txt2";
    
$t1 explode (","$dato);
    
$t2 explode ("/"$t1[1]);
    
$ntxt=$t1[0].", ".$t2[2]."/".$t2[1]."/".$t2[0].", ".$t1[2]."\n"// Juntamos el nuevo orden a imprimir
    
echo "$ntxt <br>\n"// Imprime el reporte
    
fputs($xx,$ntxt);
    }
fclose ($txt); 
Primero cargo el WEB TXT y capturo el contenido para almacenarlo en uno nuevo (nweb.txt) pues asi lo quise.

Saludos
__________________
Libio Balbin T.
Web Master
http://www.kingperu.net &copy; 2003

Última edición por libiob; 05/11/2003 a las 19:51
  #4 (permalink)  
Antiguo 06/11/2003, 02:00
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Si tu fin es meterlo en la BD, yo no veo la utilidad de hacer un nuevo txt.
A menos que ese nuevo txt te sirva para algo (aparte de insertar en la BD)...
La utilidad que le veo es meterlo en la BD con datos compatibles para el tipo "date".
Por eso yo comparto la idea de claudiovega de hacer todo de una vez.

Saludos

Última edición por jpinedo; 06/11/2003 a las 02:26
  #5 (permalink)  
Antiguo 06/11/2003, 02:28
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Creo que me enredé un poco... mejor lo digo con código: He utilizado todo el código que posteaste antes. Sólo le modifiqué un par de líneas.
Creo que podrías hacer algo así:
Código PHP:
<?php 
$txt
=fopen("web.txt","r+");
while (!
feof($txt))
{
    
$txt2=fgets($txt4096);
    
$dato "$txt2";
    
$t1 explode (","$dato);
    
$t2 explode ("/"$t1[1]);
    
$ntxt=$t1[0].", ".$t2[2]."/".$t2[1]."/".$t2[0].", ".$t1[2]."\n"// Juntamos el nuevo orden a imprimir
    //Acá lo mandas directamente a la bd.
    
$sql="INSERT INTO tu_tabla (ID,fecha,cantidad) VALUES ('$t1[0]' , '$ntxt' , 't1[2]')";
    
mysql_query($sql) or die(mysql_error());
    echo 
"$ntxt <br>\n"// Imprime el reporte 
}
fclose ($txt);
?>
Así ya no creas ese segundo .txt y si necesitas algún reporte, pues consultas a la base de datos.

Saludos

Última edición por jpinedo; 06/11/2003 a las 02:30
  #6 (permalink)  
Antiguo 06/11/2003, 22:49
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
En el bpost anterior había un error. Puse while(feof(txt))... me faltó el "!"... pero ya lo edité y lo corregí.

Saludos
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 13:43.