[ Foro de Pascal ]

Fichero de texto

09-Jan-2013 23:02
Antonio Rodrigues
4 Respuestas

Tengo el siguiente procedimiento:

procedure fichero_guardar_pedidos(var mi_cesta: cesta; var Nfichero: string);
         var
            fichero: text;

         begin
              assign(fichero, 'indice.txt');
              rewrite(fichero);

              if (mi_cesta[0].en_cesta=true) then
                 writeln(fichero, Nfichero);

              close(fichero);
         end;

Lo que este procedimiento tiene que hacer es lo siguiente: si "mi_cesta[0].en_cesta=true" tiene que escribir en un fichero de texto llamado "indice.txt" el nombre de la cesta (su nombre es Nfichero). La primera ves que se cumpla esto "mi_cesta[0].en_cesta=true" se supone que se crear un fichero de texto llamado "indice.txt" y se escribe en él el nombre de la cesta (Nfichero).
El problema esta cuando es la 2º vez, o la 3º vez, etc. que hago esto. Porque cuando es la 2º vez, o la 3º vez, etc. lo que pasa es que el nombre que esta alla guardado se sustituye por el nuevo nombre, pero esto no es lo que quiero.
Lo que quiero es que el nombre antiguo se quede y el nuevo nombre se escribe debajo.

Alguien sabe que tengo que cambiar o que tengo que añadir a este procedimiento para que no se sustituya el nombre antiguo por el nuevo, sino que solo se añada el nuevo nombre manteniendo los 2. ??


10-Jan-2013 02:16
Luis Torres (+18)

Eso se hace utilizando un archivo auxiliar, el cual abres para la escritura y copias la información del archivo indice.txt, luego añades, en ese mismo archivo auxiliar, el nombre de la nueva cesta a agregar; una vez hecho esto, borras el archivo indice.txt y renombras el archivo auxiliar con el nombre "indice.txt". Eso es todo. Busca los comandos para hacer todo esto en internet, pero el procedimiento para llevarlo a cabo es como te lo indiqué. Vamos a ver lo que te responda Nacho Cabanes.
Saludos.


10-Jan-2013 15:28
Antonio Rodrigues

Gracias amigo. Voy a buscar los comandos para todo eso y a ver si puedo hacerlo.


13-Jan-2013 11:05
Nacho Cabanes (+84)

Lee el primer párrafo de

http://www.aprendeaprogramar.com/mod/resource/view.php?id=223

" Si queremos abrirlo para escritura, empleamos "rewrite" en vez de "reset", pero esta orden hay que utilizarla con cuidado, porque si el fichero ya existe lo machacaría, dejando el nuevo en su lugar, y perdiendo los datos anteriores."

Y si además llegas al segundo párrafo, que no es muy largo, tendrás todo resuelto...  ; - )

"Para abrir el fichero para añadir texto al final, usaríamos "append" en vez de "reset"."


13-Jan-2013 13:59
Antonio Rodrigues

Amigo Nacho ya tengo mi problema resuelto, pero gracias.
Eso que has dicho yo ya lo sabia, el problema es que no sabia como utilizarlo, es decir, no sabia la forma de como ponerlo.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)