Foros del Web » Programando para Internet » PHP »

Problema al sobreescribir fichero

Estas en el tema de Problema al sobreescribir fichero en el foro de PHP en Foros del Web. Hola a todos. Mi problema es el siguiente: Por un lado tengo un fichero que se genera al guardar un formulario y por otro uno ...
  #1 (permalink)  
Antiguo 10/02/2011, 05:02
 
Fecha de Ingreso: junio-2010
Mensajes: 11
Antigüedad: 13 años, 10 meses
Puntos: 0
Problema al sobreescribir fichero

Hola a todos.

Mi problema es el siguiente: Por un lado tengo un fichero que se genera al
guardar un formulario y por otro uno ya existente que quiero sobreescribir hasta un determinado token a partir del anterior.
El problema con el que me encuentro al sobreescribir el fichero es el siguiente: si el número de caracteres que quiero escribir es inferior al número que ya contiene la linea, los carácteres que sobran permanecen en el fichero y se van arrastrando al hacer la sobreescritura.

Es decir, supongamos que fichero1.txt es el fichero nuevo generado y fichero2.txt
es el fichero que voy a sobreescribir hasta un cierto token y que ya contiene texto.

fichero1.txt:

Código:
/*Linea de texto en fichero1.txt*/
fichero2.txt

Código:
/*Linea de texto en fichero2.txt con más caracteres*/
/*Token final de sobreescritura*/
y hago lo siguiente

Código:
$f1 = fopen("fichero1.txt","r+");
$f2 = fopen("fichero2.txt","r+");

while(!feof($f1)){ 
						   			 
$buffer = fgets($f1,4096); 
fputs($f2,$buffer); 
fputs($f2,"\r\n");
	
}
Despues de sobreescribir fichero1.txt en fichero2.txt, fichero2.txt quedaría así:

fichero2.txt

Código:
/*Linea de texto en fichero1.txt*/
 más caracteres*/
/*Token final de sobreescritura*/
En fichero2.txt permanecería la cadena de texto " más caracteres*/".

Vamos a suponer ahora que fichero1.txt tiene más caracteres en esa linea que fichero2.txt. Es decir,

fichero1.txt

Código:
/*Linea de texto en fichero1.txt con más caracteres*/
fichero2.txt

Código:
/*Linea de texto en fichero2.txt*/
/*Token final de sobreescritura*/
Despues de sobreescribir fichero2.txt quedaría así:

fichero2.txt

Código:
/*Linea de texto en fichero1.txt con más caracteres*/
breescritura*/
En fichero2.txt me sobreescribiria el token.

¿como podría evitar este comportamiento y eliminar esos caracteres que sobran hasta el token de final de sobreescritura o evitar que me sobreescriba algo que no quiero?
La cuestión es que ambos casos se pueden dar de forma aleatoria, a veces la linea que se va a sobreescribir tendrá más caracteres y otras veces menos.
¿Como podría controlarlo?

Última edición por ChrisGU; 10/02/2011 a las 06:07
  #2 (permalink)  
Antiguo 11/02/2011, 04:28
 
Fecha de Ingreso: junio-2010
Mensajes: 11
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Problema al sobreescribir fichero

¿Sabeis si existe otra librería de lectura/escritura de ficheros que pueda ayudarme con esto?

Saludos

Etiquetas: fichero
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 06:57.