• Viernes 29 de Marzo de 2024, 09:13

Autor Tema:  Validacion De Ubicacion De Archivo  (Leído 1302 veces)

saitamx

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Validacion De Ubicacion De Archivo
« en: Jueves 28 de Junio de 2007, 21:09 »
0
Hola, resulta que tengo este problema y no  se me ocurre una solucion.

Mediante un programa le pido al usuario que indique la ubicacion del archivo que se utilizara. Ahora, en caso de que el usuario se equivoque e ingrese algo como "c:\mis documentos\\\"  al querer crear el archivo, el programa pincha.  Lo mismo se aplica si por ejemplo el usuario da una direccion con carpetas inexistentes.
Como podria detectar el error antes de que pinche?

Código: Text
  1. program direcciones;
  2.  
  3. uses
  4. crt,dos;
  5.  
  6. type
  7. tarchivo= file of string;
  8.  
  9. var
  10. rutas:tarchivo;
  11. nomb,nombres:string;
  12.  
  13. function validar():string;
  14. var
  15. s:string;
  16. c:char;
  17. validos:set of char&#59;
  18. n:integer;
  19. cod:longint;
  20.  
  21. Begin
  22. s:='';
  23. validos:=['a'..'z','\',':','.'];
  24. repeat
  25. c:=readkey;
  26. if c in validos then
  27. begin
  28. write(c);
  29. s:=s+c;
  30. end
  31. until c=#13;
  32. validar:=s;
  33. end;
  34.  
  35. begin
  36. clrscr;
  37. assign(rutas,'rutas.dat');
  38. rewrite(rutas);
  39. write('Ingrese ruta del archivo de facturas:');
  40. nombres:=validar();
  41.  
  42. write(rutas,nombres);
  43. close(rutas);
  44.  
  45. reset(rutas);
  46. read(rutas,nombres);
  47. close(rutas);
  48.  
  49. assign(nomb,nombres);
  50. {$I-}
  51. reset(nomb);
  52. {$I+}
  53. if (ioresult<>0) then
  54. rewrite(nomb);
  55. write(nomb,'pepe');
  56. close(nomb);
  57. readkey;
  58. end.
  59.  
  60.  
  61.  
  62.  


Desde ya muchas gracias

saitamx

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Validacion De Ubicacion De Archivo
« Respuesta #1 en: Jueves 28 de Junio de 2007, 21:24 »
0
Ya lo solucione.  :P  Perdon por las molestias, borren el topic.

Enko

  • Miembro de PLATA
  • *****
  • Mensajes: 1562
  • Nacionalidad: 00
    • Ver Perfil
Re: Validacion De Ubicacion De Archivo
« Respuesta #2 en: Jueves 28 de Junio de 2007, 22:26 »
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. <_<