Cobol - CRC-32 En Cobol VAX

 
Vista:

CRC-32 En Cobol VAX

Publicado por Andres (1 intervención) el 10/08/2006 15:59:07
Les explico lo que necesito, tengo un archivo plano al cual debo aplicar el modulo 997 a un campo y luego el algoritmo crc-32, si alguien me pudiera orientar al respecto sobre los 2 temas o bien tuviera alguno en cobol se lo agradeceria

El lenguaje es Cobol Vax
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

Aplicar módulo 997 y algoritmo CRC-32 en Cobol Vax

Publicado por Alejandro (300 intervenciones) el 06/09/2023 23:08:38
Para aplicar el módulo 997 y el algoritmo CRC-32 a un campo en un archivo plano usando Cobol Vax, aquí tienes una orientación general y un ejemplo para cada uno:

Módulo 997:

El módulo 997 es un algoritmo utilizado en el procesamiento de archivos EDI (Electronic Data Interchange) para verificar la integridad de los mensajes. En Cobol, puedes implementar el cálculo del módulo 997 de la siguiente manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
IDENTIFICATION DIVISION.
PROGRAM-ID. Modulo997Example.
 
DATA DIVISION.
WORKING-STORAGE SECTION.
01 InputField        PIC X(100).
01 ModuloResult      PIC 9(3).
 
PROCEDURE DIVISION.
    MOVE "123456789" TO InputField  -- Reemplaza con tu campo de entrada.
    MOVE FUNCTION MOD(997, FUNCTION NUMVAL(InputField)) TO ModuloResult.
 
    DISPLAY "Resultado del Módulo 997: " ModuloResult.
 
    STOP RUN.

Este es un ejemplo básico que calcula el módulo 997 de un campo de entrada y almacena el resultado en `ModuloResult`. Asegúrate de reemplazar `"123456789"` con el valor real de tu campo de entrada.

Algoritmo CRC-32:

El algoritmo CRC-32 se utiliza para verificar la integridad de datos y se puede aplicar de la siguiente manera en Cobol Vax:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
IDENTIFICATION DIVISION.
PROGRAM-ID. CRCCalculationExample.
 
DATA DIVISION.
WORKING-STORAGE SECTION.
01 InputField        PIC X(100).
01 CRCResult         PIC 9(10).
 
PROCEDURE DIVISION.
    MOVE "Hello, World!" TO InputField  -- Reemplaza con tu campo de entrada.
    CALL 'CRC32' USING InputField LENGTH OF InputField CRCResult.
 
    DISPLAY "Resultado del Algoritmo CRC-32: " CRCResult.
 
    STOP RUN.

En este ejemplo, estamos usando una llamada a una función externa llamada 'CRC32' para calcular el valor CRC-32 del campo de entrada. Asegúrate de reemplazar `"Hello, World!"` con el valor real de tu campo de entrada y de tener acceso a una función externa que pueda calcular el CRC-32.

Ten en cuenta que la implementación real del cálculo del CRC-32 puede variar según las especificaciones de tu sistema y las bibliotecas disponibles. Deberás asegurarte de tener acceso a una función o rutina que realice este cálculo de manera confiable en tu entorno Cobol Vax.
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
sin imagen de perfil

Aplicar módulo 997 y algoritmo CRC-32 en Cobol Vax

Publicado por Marcelo Madelón (1 intervención) el 05/04/2024 13:54:20
Alejandro

Vi una respuesta en el foro de Clarion de LWP y buscando información sobre el cálculo del CRC encontré tu aporte en Cobol.
Trabajo con Clarion y debo calcular el CRC según el estándar ISO/IEC 13239 usando el polinomio '1021' (hex) y un valor inicial
'FFFF' (hex).
El algoritmo es:
CRC-16/CCITT-FALSE

Con lo que he visto hasta ahora no llego al resultado correcto. Abajo te paso un string de ejemplo al que le debo calcular el CRC

¿Tienes información sobre este tema?
Creo que Clarion no tiene ninguna función para dicho cálculo.

Desde ya muchas gracias,


00020101021141420017ar.com.bancoroela98113059891004599020150150011200837428105126002200222470005610000000585204472253030325802AR5914TURISMO ANIBUS608SANTA FE6108S2600IKP62830032fc751fa68bc4473aac2be9dda9afa91e01200000000000000034780106190000000000000004722807600329332b32784bf45859ecbfa1ce17e19ca011424041524100.5002100826015.2703100829714.346304

Donde según la pagina https://crccalc.com/ el CRC debe ser: 0x952D
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