Cobol - problemas al hacer hashing nuevo de archivo relati

 
Vista:

problemas al hacer hashing nuevo de archivo relati

Publicado por juan (1 intervención) el 02/02/2005 01:29:24
omo hacer un hashing nuevo a partir de un archivo relativo dado, el generado del nuevo hashing tiene que tener area de overflow secuencial no con punteros . la pregunta es como hago esto tenia uno con acceso directo y le calcule el hashing nuevo con el metodo de resto , errores d ecompilacion no poseo. Pero a la hora de ejecutarlo me tira el error 46 del lenguaje que sino no me equivoco es un problema con el posicionarse(start) o con el read del nuevo archivo .
ya lo mire hasta al cansancio y la verdad ya no se que mas tocar.
hay alguien que me pueda ayudar o checar mi programa o tirarme unas lineas de codigo para ver en que estoy equivocado.
gracias
saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Resolución de errores en Implementación de hashing en archivo relativo

Publicado por Alejandro (300 intervenciones) el 06/09/2023 00:48:02
Entiendo que estás tratando de implementar un hashing nuevo a partir de un archivo relativo en COBOL, y estás experimentando un error en la ejecución. El error 46 que mencionas generalmente está relacionado con problemas de posicionamiento o lectura de archivos. A continuación, te daré algunas sugerencias y líneas de código que podrían ayudarte a resolver el problema. Por supuesto, ten en cuenta que sin ver tu código completo, es difícil diagnosticar el problema con precisión.

Asegúrate de seguir estos pasos:

1. Apertura de archivos: Verifica que estás abriendo tus archivos correctamente con los modos apropiados (`OPEN INPUT`, `OPEN OUTPUT`, etc.). También asegúrate de que estás usando el nombre de archivo correcto y que el archivo existe.

2. Posicionamiento: Antes de realizar una operación de lectura (`READ`) en un archivo relativo, debes posicionarte en el registro adecuado utilizando el comando `START` o `REWRITE`. Asegúrate de que el registro en el que te estás posicionando existe en el archivo.

3. Manejo de errores: Implementa manejo de errores en tu programa para lidiar con situaciones donde no se pueda encontrar un registro o haya otros problemas en la operación de lectura. Puedes utilizar declaraciones `AT END` o `NOT INVALID KEY` para manejar estos casos.

Aquí tienes un ejemplo simplificado de cómo podrías abrir un archivo relativo y posicionarte en un registro antes de leerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
IDENTIFICATION DIVISION.
PROGRAM-ID. HashingProgram.
DATA DIVISION.
 
FILE SECTION.
FD RelativeFile.
01 FileRecord.
   05 Field1 PIC X(10).
   05 Field2 PIC 9(5).
   ... (otros campos).
 
WORKING-STORAGE SECTION.
01 SearchKey PIC X(10) VALUE "BuscarEsto".
 
PROCEDURE DIVISION.
OPEN INPUT RelativeFile.
MOVE SearchKey TO FileRecord.Field1.
 
START RelativeFile
  KEY IS LESS THAN OR EQUAL TO SearchKey
  INVALID KEY
    DISPLAY "Registro no encontrado"
  NOT INVALID KEY
    DISPLAY "Registro encontrado"
    READ RelativeFile INTO FileRecord
    DISPLAY "Contenido del registro: " FileRecord
END-START.
 
CLOSE RelativeFile.
STOP RUN.

Asegúrate de que estás siguiendo estos pasos y de que el archivo y los datos son consistentes con lo que esperas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar