• Viernes 8 de Noviembre de 2024, 23:01

Autor Tema:  Crear Un Archivo  (Leído 1685 veces)

darmigmar

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Crear Un Archivo
« en: Domingo 21 de Noviembre de 2004, 06:58 »
0
Hola, qué tal? Yo de nuevo, molestando. El punto es que quería saber como crear un archivo nuevo sin que se sobreescriba cada vez que ejecuto o corro el programa. A los que lo sepan (seguramente todos) les agradecería que me dieran una mano. Gracias.

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Crear Un Archivo
« Respuesta #1 en: Domingo 21 de Noviembre de 2004, 14:40 »
0
Si no quieres sobreescribir un archivo ya existente con FileExists verifica si existe primero y si es así agrega los nuevos datos al final del archivo usando reset y seek (archivos binarios) o Append (archivos de texto) en lugar de usar el rewrite.

darmigmar

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Crear Un Archivo
« Respuesta #2 en: Domingo 21 de Noviembre de 2004, 21:54 »
0
Muchísimas gracias.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Crear Un Archivo
« Respuesta #3 en: Martes 30 de Noviembre de 2004, 00:22 »
0
Tambien puedes desactivar temporalmente la verificacion de la entrada/salida y comprobar tu mismo los errores con IOResult.

Para desactivar la verificacion de I/O: {$I-}
Para activar la verificacion de I/O: {$I+}
Nota que {$Letra,+/-} son directivas de compilacion y no comentarios
y luego tenes a la funcion IOResult que es distinto de 0 si algo paso mal

Lo que hace este codigo es resetear  un Archivo de  NOmbre Archivo, si este no existe crea uno nuevo.

Código: Text
  1.  
  2.  Assign(Archivo, 'Archivo.dat');
  3.   {$I-}
  4.     Reset(Archivo);
  5.     if IOResult <> 0 then {archivo no existe}
  6.     begin
  7.       WriteLn('No se encuentra el archivo');
  8.       WriteLn('Desea crear uno nuevo');
  9.       res := ReadKey;
  10.       if (res = 's') or (res = 'S') then ReWrite(Archivo);
  11.     end;
  12.   {$I+}
  13. end;
  14.  
  15.  

La funcion IOResult devuelve varios valores además de cero con distintos mensajes de error, lo que si, es que no tengo ahora la tabla de los errores. <_<