Ver Mensaje Individual
  #2 (permalink)  
Antiguo 03/12/2012, 11:47
vosk
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 9 meses
Puntos: 83
Respuesta: Modificar lista en archivo de texto

No puedes hacerlo de forma directa: la escritura solo añade datos cuando estas al final del fichero, en cualquier otra posicion sobreescribe; esto significa que si tienes este archivo:

Código:
carloscgc
1234
vosk
9876
y quieres cambiar la contraseña de carloscgc por 'qwert' sucedera que el ultimo caracter 't' sobreescribirá el salto de linea, pero esto no puedes solucionarlo añadiendo otro salto de linea porque ese nuevo sobreescribirá el primer caracter del segundo usuario ok?

Puedes duplicar la parte no afectada (es decir todo lo que hay entre el siguiente usuario hasta el final del archivo), añadir la nueva contraseña, el siguiente salto de linea y volver a añadir la parte duplicada.

O tambien puedes dejar un espacio estandar para las entradas, de forma que los caracteres no usados los dejas en nulo. Es decir, escribes 'qwerty' y hasta x bytes (los que definas como maxima longitud de contraseña) añades nulos, y al final el salto de linea. Para leer tienes que leer bloques de x bytes y no tendras problemas para mostrarlos porque la salida de texto finaliza con el caracter nulo. Y para cambiar la contraseña tampoco porque este metodo evita que sobreescribas la entrada siguiente. Ten en cuenta que en las bases de datos mas populares tienes que especificar el tamaño de los campos textuales, de forma que todo lo que entras se trunca al tamaño maximo del campo.

Saludos
vosk