Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   PowerCOBOL (ActiveX, v4 - v11) (https://www.cobolforo.es/forumdisplay.php?f=9)
-   -   [Sintaxis] Ver si existe un archivo (https://www.cobolforo.es/showthread.php?t=390)

JuanJuan77 17 de mayo de 2016 16:38

Ver si existe un archivo
 
Hola, como puedo saber en powercobol si existe un archivo en un directorio?

saludos

Kuk 17 de mayo de 2016 18:49

JuanJuan77, hay varios modos. Se puede hacer por WinAPI, también con un CmFile y recorrerlo. Pero lo más fácil y apropiado en este caso será usar la rutina correspondiente:

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01 file-name          PIC X(n).
  3.  01 file-details.      
  4.     02 file-size       PIC 9(18) BINARY.
  5.     02 file-date.      
  6.        03 day          PIC 9(4) BINARY.
  7.        03 month        PIC 9(4) BINARY.
  8.        03 year         PIC 9(4) BINARY.
  9.     02 file-time.      
  10.        03 hour         PIC 9(4) BINARY.
  11.        03 minute       PIC 9(4) BINARY.
  12.        03 second       PIC 9(4) BINARY.
  13.        03 1-100-second PIC 9(4) BINARY.
  14.  01 status-code        PIC S9(4) COMP-5.
  15.  
  16. PROCEDURE DIVISION.
  17.  
  18.     CALL "CBL_CHECK_FILE_EXIST2"
  19.        USING file-name file-details
  20.        RETURNING status-code

Para poder usar las rutinas CBL_ hay que añadir la librería siguiente al proyecto:

Código:

C:\Program Files\Fujitsu NetCOBOL for Windows\F3BICBLR.lib

Adrianeloy 19 de mayo de 2016 18:47

JuanJuan77, yo "cargo" el fichero a un Item EDIT de esta forma:

Código COBOL:
  1.      CALL LOADFILE OF EDIT1 USING "ruta y nombre del archivo"
  2.      IF PROGRAM-STATUS NOT = ZEROS DISPLAY "El archivo no existe".

De esto modo, no necesito agregar librerias y puedo leer hasta rutas y nombres de archivo con espacios en blanco.

NOTA: Al item EDIT1 lo limito a 1 caracter para que no lea ficheros pesados innecesariamente.
(O sea, entro su "Edit Item Style\ExStyle...", tildo "Limit Text" y le pongo 1 de valor)

Kuk 19 de mayo de 2016 21:59

Adrianeloy, usa el resalto de sintaxis http://cobolforo.es/images/editor/cobol.gif

En cuanto al tema, en PowerCOBOL 9 si el archivo no existe, creo recordar que da error. Además, puede que necesites comprobar un archivo que no es de texto plano. Por ejemplo un indexado.

Adrianeloy 20 de mayo de 2016 17:06

Kuk, es cierto, la verdad lo usé y probé solo en PowerCobol V3.
Pero te aseguro que funciona con todo los tipo de archivos (texto, indexados, jpg, etc...)

JuanJuan77 18 de enero de 2021 15:43

me da un error
 
Cita:

Citación del post de Adrianeloy (Mensaje 1943)
JuanJuan77, yo "cargo" el fichero a un Item EDIT de esta forma:

Código COBOL:
  1.      CALL LOADFILE OF EDIT1 USING "ruta y nombre del archivo"
  2.      IF PROGRAM-STATUS NOT = ZEROS DISPLAY "El archivo no existe".

De esto modo, no necesito agregar librerias y puedo leer hasta rutas y nombres de archivo con espacios en blanco.

NOTA: Al item EDIT1 lo limito a 1 caracter para que no lea ficheros pesados innecesariamente.
(O sea, entro su "Edit Item Style\ExStyle...", tildo "Limit Text" y le pongo 1 de valor)


al mover una ruta y nombre del archivo donde no existe el archivo me da un error y no puedo resolverlo.

Josber 20 de enero de 2021 11:16

Cita:

Citación del post de JuanJuan77 (Mensaje 6427)
al mover una ruta y nombre del archivo donde no existe el archivo me da un error y no puedo resolverlo.

¿Qué error te da?


La franja horaria es GMT +2. Ahora son las 02:30.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.