Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL y COM/OLE
PowerCOBOL y COM/OLE La utilización de COM / OLE en PowerCOBOL
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
Cálculo CRC8 Kuk Cocina MicroFocus 0 4 de octubre de 2021 10:37
[Sintaxis] Calcular dias, meses y años entre dos fechas Roger Fujitsu COBOL 7 6 de febrero de 2020 09:27

Respuesta

  #11
Antiguo 30 de septiembre de 2021, 19:21
Dasije
Forero Senior
Última Actividad 06.03.2022 17:04
Posts Posts: 173
Likes enviados Enviados: 1
Likes recibidos Recibidos: 79

Hola @JCantero,

Te pago el código en Java, este es el ejemplo que ofrece la administración pública.

Código Java:
  1. package net.ticketbai;
  2. import java.io.UnsupportedEncodingException;
  3. public class CRC8{
  4. private static final String UTF_8 = "UTF-8";
  5. // CRC-8,
  6. // Poly = x^8 + x^2 + x^1 + x^0
  7. // Init = 0
  8. // RefIn = false
  9. // RefOut = false
  10. // XorOut = 0
  11. private static final byte[] crc8_table =
  12. new byte[] {
  13. (byte) 0x00, (byte) 0x07, (byte) 0x0E, (byte) 0x09, (byte) 0x1C, (byte) 0x1B, (byte) 0x12, (byte) 0x15,
  14. (byte) 0x38, (byte) 0x3F, (byte) 0x36, (byte) 0x31, (byte) 0x24, (byte) 0x23, (byte) 0x2A, (byte) 0x2D,
  15. (byte) 0x70, (byte) 0x77, (byte) 0x7E, (byte) 0x79, (byte) 0x6C, (byte) 0x6B, (byte) 0x62, (byte) 0x65,
  16. (byte) 0x48, (byte) 0x4F, (byte) 0x46, (byte) 0x41, (byte) 0x54, (byte) 0x53, (byte) 0x5A, (byte) 0x5D,
  17. (byte) 0xE0, (byte) 0xE7, (byte) 0xEE, (byte) 0xE9, (byte) 0xFC, (byte) 0xFB, (byte) 0xF2, (byte) 0xF5,
  18. (byte) 0xD8, (byte) 0xDF, (byte) 0xD6, (byte) 0xD1, (byte) 0xC4, (byte) 0xC3, (byte) 0xCA, (byte) 0xCD,
  19. (byte) 0x90, (byte) 0x97, (byte) 0x9E, (byte) 0x99, (byte) 0x8C, (byte) 0x8B, (byte) 0x82, (byte) 0x85,
  20. (byte) 0xA8, (byte) 0xAF, (byte) 0xA6, (byte) 0xA1, (byte) 0xB4, (byte) 0xB3, (byte) 0xBA, (byte) 0xBD,
  21. (byte) 0xC7, (byte) 0xC0, (byte) 0xC9, (byte) 0xCE, (byte) 0xDB, (byte) 0xDC, (byte) 0xD5, (byte) 0xD2,
  22. (byte) 0xFF, (byte) 0xF8, (byte) 0xF1, (byte) 0xF6, (byte) 0xE3, (byte) 0xE4, (byte) 0xED, (byte) 0xEA,
  23. (byte) 0xB7, (byte) 0xB0, (byte) 0xB9, (byte) 0xBE, (byte) 0xAB, (byte) 0xAC, (byte) 0xA5, (byte) 0xA2,
  24. (byte) 0x8F, (byte) 0x88, (byte) 0x81, (byte) 0x86, (byte) 0x93, (byte) 0x94, (byte) 0x9D, (byte) 0x9A,
  25. (byte) 0x27, (byte) 0x20, (byte) 0x29, (byte) 0x2E, (byte) 0x3B, (byte) 0x3C, (byte) 0x35, (byte) 0x32,
  26. (byte) 0x1F, (byte) 0x18, (byte) 0x11, (byte) 0x16, (byte) 0x03, (byte) 0x04, (byte) 0x0D, (byte) 0x0A,
  27. (byte) 0x57, (byte) 0x50, (byte) 0x59, (byte) 0x5E, (byte) 0x4B, (byte) 0x4C, (byte) 0x45, (byte) 0x42,
  28. (byte) 0x6F, (byte) 0x68, (byte) 0x61, (byte) 0x66, (byte) 0x73, (byte) 0x74, (byte) 0x7D, (byte) 0x7A,
  29. (byte) 0x89, (byte) 0x8E, (byte) 0x87, (byte) 0x80, (byte) 0x95, (byte) 0x92, (byte) 0x9B, (byte) 0x9C,
  30. (byte) 0xB1, (byte) 0xB6, (byte) 0xBF, (byte) 0xB8, (byte) 0xAD, (byte) 0xAA, (byte) 0xA3, (byte) 0xA4,
  31. (byte) 0xF9, (byte) 0xFE, (byte) 0xF7, (byte) 0xF0, (byte) 0xE5, (byte) 0xE2, (byte) 0xEB, (byte) 0xEC,
  32. (byte) 0xC1, (byte) 0xC6, (byte) 0xCF, (byte) 0xC8, (byte) 0xDD, (byte) 0xDA, (byte) 0xD3, (byte) 0xD4,
  33. (byte) 0x69, (byte) 0x6E, (byte) 0x67, (byte) 0x60, (byte) 0x75, (byte) 0x72, (byte) 0x7B, (byte) 0x7C,
  34. (byte) 0x51, (byte) 0x56, (byte) 0x5F, (byte) 0x58, (byte) 0x4D, (byte) 0x4A, (byte) 0x43, (byte) 0x44,
  35. (byte) 0x19, (byte) 0x1E, (byte) 0x17, (byte) 0x10, (byte) 0x05, (byte) 0x02, (byte) 0x0B, (byte) 0x0C,
  36. (byte) 0x21, (byte) 0x26, (byte) 0x2F, (byte) 0x28, (byte) 0x3D, (byte) 0x3A, (byte) 0x33, (byte) 0x34,
  37. (byte) 0x4E, (byte) 0x49, (byte) 0x40, (byte) 0x47, (byte) 0x52, (byte) 0x55, (byte) 0x5C, (byte) 0x5B,
  38. (byte) 0x76, (byte) 0x71, (byte) 0x78, (byte) 0x7F, (byte) 0x6A, (byte) 0x6D, (byte) 0x64, (byte) 0x63,
  39. (byte) 0x3E, (byte) 0x39, (byte) 0x30, (byte) 0x37, (byte) 0x22, (byte) 0x25, (byte) 0x2C, (byte) 0x2B,
  40. (byte) 0x06, (byte) 0x01, (byte) 0x08, (byte) 0x0F, (byte) 0x1A, (byte) 0x1D, (byte) 0x14, (byte) 0x13,
  41. (byte) 0xAE, (byte) 0xA9, (byte) 0xA0, (byte) 0xA7, (byte) 0xB2, (byte) 0xB5, (byte) 0xBC, (byte) 0xBB,
  42. (byte) 0x96, (byte) 0x91, (byte) 0x98, (byte) 0x9F, (byte) 0x8A, (byte) 0x8D, (byte) 0x84, (byte) 0x83,
  43. (byte) 0xDE, (byte) 0xD9, (byte) 0xD0, (byte) 0xD7, (byte) 0xC2, (byte) 0xC5, (byte) 0xCC, (byte) 0xCB,
  44. (byte) 0xE6, (byte) 0xE1, (byte) 0xE8, (byte) 0xEF, (byte) 0xFA, (byte) 0xFD, (byte) 0xF4, (byte) 0xF3 };
  45. /**
  46. * Calculate the CRC value with data from input string.
  47. * @param input input string
  48. * @return The calculated CRC value. Left padding with zeros.
  49. * @throws UnsupportedEncodingException
  50. */
  51. public static String calculate(String input) throws UnsupportedEncodingException {
  52. byte[] data = input.getBytes(UTF_8);
  53. int len = data.length;
  54. byte crc = 0;
  55. for (int i = 0; i < len; i++)
  56. crc = crc8_table[(crc ^ data[i]) & 0xff];
  57. return String.format("%03d", crc & 0xFFL);
  58. }}



Empresa de desarrollo de aplicaciones en COBOL.

DASIJE INFORMATICA, S.L.
C/ TOMAS BRETON 20
11406 JEREZ DE LA FRONTERA
CADIZ

Teléfono : 956 11 21 11
Web: http://www.dasije.es / DASIJE INFORMATICA
E-m@il: clientes(@)dasije.es
Dasije is offline   Responder Con Cita
  #12
Antiguo 1 de octubre de 2021, 04:15
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Hola Amigos:

Perdonen la ignorancia pero veo que esta instrucción que está en el codigo original, no está en el codigo cobol

Código Java:
  1. data = input.getBytes(UTF_8);

Será por eso?

Saludos

Fito...
Fito is offline   Responder Con Cita
  #13
Antiguo 1 de octubre de 2021, 15:47
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Dasije, aquí tienes un ejemplo funcionando:

Código COBOL:
  1.       $set sourceformat(variable)
  2.        program-id. CRC8 as "CRC8".
  3.  
  4.        environment division.
  5.        configuration section.
  6.  
  7.        data division.
  8.        working-storage section.
  9.        
  10.        01  CRC8-Table.
  11.            05  filler occurs 256.
  12.                10  tbByte      PIC X(1).
  13.                10  tbByteNum redefines tbByte PIC S9(2) COMP-5.
  14.        
  15.        01  cadena           PIC X(256) VALUE
  16.            "TBAI-00000006Y-251019-btFpwP8dcLGAF-".
  17.        01  len              PIC 9(2) COMP-5.
  18.        01  crc              PIC X(1).
  19.        01  crcNum redefines crc PIC 9(2) comp-5.
  20.        01  crcNumInt        PIC S9(9) COMP-5.
  21.        
  22.        01  idx-1            PIC 9(2) COMP-5.
  23.        
  24.        01  tmpChar          PIC X(1).
  25.        01  tmpIdx redefines tmpChar PIC S9(2) COMP-5.
  26.        01  tmpIdxInt        PIC S9(9) COMP-5.
  27.        
  28.        procedure division.
  29.            
  30.            perform chargeTable
  31.            perform getLen
  32.            
  33.            move 1 to idx-1
  34.            move 0 to crcNumInt
  35.            
  36.            perform until idx-1 > len
  37.                move cadena(idx-1:1) to tmpChar
  38.                move tmpIdx          to tmpIdxInt              
  39.                
  40.                call "CBL_XOR" using crcNumInt tmpIdxInt by value 4
  41.                display tmpIdxInt " " no advancing
  42.                
  43.                call "CBL_AND" using X"FF000000" tmpIdxInt by value 4
  44.                display tmpIdxInt " "
  45.                        tbByteNum(tmpIdxInt + 1) " " no advancing
  46.                
  47.                move tbByte(tmpIdxInt + 1) to crc
  48.                move crcNum                to crcNumInt
  49.                
  50.                display crcNumInt " "
  51.                
  52.                add 1 to idx-1
  53.            end-perform
  54.            
  55.            call "CBL_AND" using X"FF000000" crcNumInt by value 4
  56.            
  57.            display crcNumInt
  58.            
  59.            move crcNumInt to crcNum
  60.            
  61.            display crcNum " " crc
  62.            
  63.            goback
  64.            .
  65.        
  66.        
  67.        chargeTable.
  68.            string
  69.                        X"00", X"07", X"0E", X"09",
  70.             X"1C", X"1B", X"12", X"15", X"38", X"3F", X"36", X"31",
  71.             X"24", X"23", X"2A", X"2D", X"70", X"77", X"7E", X"79",
  72.             X"6C", X"6B", X"62", X"65", X"48", X"4F", X"46", X"41",
  73.            
  74.            X"54", X"53", X"5A", X"5D", X"E0", X"E7", X"EE", X"E9",
  75.             X"FC", X"FB", X"F2", X"F5", X"D8", X"DF", X"D6", X"D1",
  76.             X"C4", X"C3", X"CA", X"CD", X"90", X"97", X"9E", X"99",
  77.             X"8C", X"8B", X"82", X"85", X"A8", X"AF", X"A6", X"A1",
  78.             X"B4", X"B3", X"BA", X"BD", X"C7", X"C0", X"C9", X"CE",
  79.             X"DB", X"DC", X"D5", X"D2", X"FF", X"F8", X"F1", X"F6",
  80.             X"E3", X"E4", X"ED", X"EA", X"B7", X"B0", X"B9", X"BE",
  81.             X"AB", X"AC", X"A5", X"A2", X"8F", X"88", X"81", X"86",
  82.             X"93", X"94", X"9D", X"9A", X"27", X"20", X"29", X"2E",
  83.             X"3B", X"3C", X"35", X"32", X"1F", X"18", X"11", X"16",
  84.             X"03", X"04", X"0D", X"0A", X"57", X"50", X"59", X"5E",
  85.             X"4B", X"4C", X"45", X"42", X"6F", X"68", X"61", X"66",
  86.             X"73", X"74", X"7D", X"7A", X"89", X"8E", X"87", X"80",
  87.             X"95", X"92", X"9B", X"9C", X"B1", X"B6", X"BF", X"B8",
  88.             X"AD", X"AA", X"A3", X"A4", X"F9", X"FE", X"F7", X"F0",
  89.             X"E5", X"E2", X"EB", X"EC", X"C1", X"C6", X"CF", X"C8",
  90.             X"DD", X"DA", X"D3", X"D4", X"69", X"6E", X"67", X"60",
  91.             X"75", X"72", X"7B", X"7C", X"51", X"56", X"5F", X"58",
  92.             X"4D", X"4A", X"43", X"44", X"19", X"1E", X"17", X"10",
  93.             X"05", X"02", X"0B", X"0C", X"21", X"26", X"2F", X"28",
  94.             X"3D", X"3A", X"33", X"34", X"4E", X"49", X"40", X"47",
  95.             X"52", X"55", X"5C", X"5B", X"76", X"71", X"78", X"7F",
  96.             X"6A", X"6D", X"64", X"63", X"3E", X"39", X"30", X"37",
  97.             X"22", X"25", X"2C", X"2B", X"06", X"01", X"08", X"0F",
  98.             X"1A", X"1D", X"14", X"13", X"AE", X"A9", X"A0", X"A7",
  99.             X"B2", X"B5", X"BC", X"BB", X"96", X"91", X"98", X"9F",
  100.             X"8A", X"8D", X"84", X"83", X"DE", X"D9", X"D0", X"D7",
  101.             X"C2", X"C5", X"CC", X"CB", X"E6", X"E1", X"E8", X"EF",
  102.             X"FA", X"FD", X"F4", X"F3"
  103.            delimited by size into CRC8-Table
  104.            .
  105.            
  106.        getLen.
  107.            
  108.            move 36 to len
  109.          
  110.            *> Fujitsu: function stored-cahr-length
  111.           *> Otros: un bucle, unstring con x"00" o NOT = SPACES etc.
  112.            .
  113.            
  114.        end program CRC8.
  115.        

Salida de tu codigo Java:
Código:
84 84 -85 -85
-23 233 -111 -111
-48 208 62 62
119 119 66 66
111 111 10 10
58 58 -90 -90
-106 150 -21 -21
-37 219 15 15
63 63 -67 -67
-115 141 -86 -86
-102 154 -49 -49
-1 255 -13 -13
-59 197 85 85
12 12 36 36
9 9 63 63
13 13 35 35
22 22 98 98
83 83 -66 -66
-114 142 -93 -93
-110 146 -9 -9
-50 206 100 100
73 73 -8 -8
-102 154 -49 -49
-69 187 40 40
110 110 13 13
125 125 116 116
3 3 9 9
89 89 -120 -120
-80 176 25 25
125 125 116 116
23 23 101 101
41 41 -33 -33
-104 152 -63 -63
-128 128 -119 -119
-49 207 99 99
78 78 -19 -19
-19 237
237
Salida del programa Cobol:
Código:
+0000000084 +0000000084 -085 +0000000171
+0000000233 +0000000233 -111 +0000000145
+0000000208 +0000000208 +062 +0000000062
+0000000119 +0000000119 +066 +0000000066
+0000000111 +0000000111 +010 +0000000010
+0000000058 +0000000058 -090 +0000000166
+0000000150 +0000000150 -021 +0000000235
+0000000219 +0000000219 +015 +0000000015
+0000000063 +0000000063 -067 +0000000189
+0000000141 +0000000141 -086 +0000000170
+0000000154 +0000000154 -049 +0000000207
+0000000255 +0000000255 -013 +0000000243
+0000000197 +0000000197 +085 +0000000085
+0000000012 +0000000012 +036 +0000000036
+0000000009 +0000000009 +063 +0000000063
+0000000013 +0000000013 +035 +0000000035
+0000000022 +0000000022 +098 +0000000098
+0000000083 +0000000083 -066 +0000000190
+0000000142 +0000000142 -093 +0000000163
+0000000146 +0000000146 -009 +0000000247
+0000000206 +0000000206 +100 +0000000100
+0000000073 +0000000073 -008 +0000000248
+0000000154 +0000000154 -049 +0000000207
+0000000187 +0000000187 +040 +0000000040
+0000000110 +0000000110 +013 +0000000013
+0000000125 +0000000125 +116 +0000000116
+0000000003 +0000000003 +009 +0000000009
+0000000089 +0000000089 -120 +0000000136
+0000000176 +0000000176 +025 +0000000025
+0000000125 +0000000125 +116 +0000000116
+0000000023 +0000000023 +101 +0000000101
+0000000041 +0000000041 -033 +0000000223
+0000000152 +0000000152 -063 +0000000193
+0000000128 +0000000128 -119 +0000000137
+0000000207 +0000000207 +099 +0000000099
+0000000078 +0000000078 -019 +0000000237
+0000000237
237 Ý
Se puede retrabajarlo y eso pero bueno, ya te lo dejo a ti. Funcionar funciona.

---------- Post añadido : 15:07 ---------- Post anterior : 15:04 ----------

@Fito, esto nos da igual amigo, borque hablamos de Bytes tal cual

El problema es que en Java, Delphi etc las tablas o los Arrays empiezan por el indice 0 y en Cobol en 1.
El código saca el indice de la tabla definida de valores, con lo cual para Cobol hay que hacerle + 1

---------- Post añadido : 15:47 ---------- Post anterior : 15:07 ----------

@Dasije, versión retrabajada:

Código COBOL:
  1.       $set sourceformat(variable)
  2.        program-id. CRC8 as "CRC8".
  3.  
  4.        environment division.
  5.        configuration section.
  6.  
  7.        data division.
  8.        working-storage section.
  9.        
  10.        01  CRC8-Table.
  11.            05  filler occurs 256.
  12.                10  tbByte      PIC X(1).
  13.        
  14.        01  cadena           PIC X(256) VALUE
  15.            "TBAI-00000006Y-251019-btFpwP8dcLGAF-".
  16.        01  len              PIC 9(2) COMP-5.
  17.        01  crc              PIC X(1).
  18.        01  crcNum redefines crc PIC 9(2) comp-5.
  19.        
  20.        01  idx-1            PIC 9(2) COMP-5.
  21.        
  22.        01  tmpChar          PIC X(1).
  23.        01  tmpIdx redefines tmpChar PIC 9(2) COMP-5.
  24.        
  25.        procedure division.
  26.            
  27.            perform chargeTable
  28.            perform getLen
  29.            
  30.            move 1 to idx-1
  31.            move 0 to crcNum
  32.            
  33.            perform until idx-1 > len
  34.                move cadena(idx-1:1) to tmpChar
  35.                
  36.                call "CBL_XOR" using crcNum tmpIdx by value 1
  37.                call "CBL_AND" using X"FF" tmpIdx by value 1
  38.                
  39.                move tbByte(tmpIdx + 1) to crc
  40.                
  41.                add 1 to idx-1
  42.            end-perform
  43.            
  44.            call "CBL_AND" using X"FF" crcNum by value 1
  45.            
  46.            display crcNum
  47.            
  48.            goback
  49.            .
  50.        
  51.        
  52.        chargeTable.
  53.            string
  54.                        X"00", X"07", X"0E", X"09",
  55.             X"1C", X"1B", X"12", X"15", X"38", X"3F", X"36", X"31",
  56.             X"24", X"23", X"2A", X"2D", X"70", X"77", X"7E", X"79",
  57.             X"6C", X"6B", X"62", X"65", X"48", X"4F", X"46", X"41",
  58.            
  59.            X"54", X"53", X"5A", X"5D", X"E0", X"E7", X"EE", X"E9",
  60.             X"FC", X"FB", X"F2", X"F5", X"D8", X"DF", X"D6", X"D1",
  61.             X"C4", X"C3", X"CA", X"CD", X"90", X"97", X"9E", X"99",
  62.             X"8C", X"8B", X"82", X"85", X"A8", X"AF", X"A6", X"A1",
  63.             X"B4", X"B3", X"BA", X"BD", X"C7", X"C0", X"C9", X"CE",
  64.             X"DB", X"DC", X"D5", X"D2", X"FF", X"F8", X"F1", X"F6",
  65.             X"E3", X"E4", X"ED", X"EA", X"B7", X"B0", X"B9", X"BE",
  66.             X"AB", X"AC", X"A5", X"A2", X"8F", X"88", X"81", X"86",
  67.             X"93", X"94", X"9D", X"9A", X"27", X"20", X"29", X"2E",
  68.             X"3B", X"3C", X"35", X"32", X"1F", X"18", X"11", X"16",
  69.             X"03", X"04", X"0D", X"0A", X"57", X"50", X"59", X"5E",
  70.             X"4B", X"4C", X"45", X"42", X"6F", X"68", X"61", X"66",
  71.             X"73", X"74", X"7D", X"7A", X"89", X"8E", X"87", X"80",
  72.             X"95", X"92", X"9B", X"9C", X"B1", X"B6", X"BF", X"B8",
  73.             X"AD", X"AA", X"A3", X"A4", X"F9", X"FE", X"F7", X"F0",
  74.             X"E5", X"E2", X"EB", X"EC", X"C1", X"C6", X"CF", X"C8",
  75.             X"DD", X"DA", X"D3", X"D4", X"69", X"6E", X"67", X"60",
  76.             X"75", X"72", X"7B", X"7C", X"51", X"56", X"5F", X"58",
  77.             X"4D", X"4A", X"43", X"44", X"19", X"1E", X"17", X"10",
  78.             X"05", X"02", X"0B", X"0C", X"21", X"26", X"2F", X"28",
  79.             X"3D", X"3A", X"33", X"34", X"4E", X"49", X"40", X"47",
  80.             X"52", X"55", X"5C", X"5B", X"76", X"71", X"78", X"7F",
  81.             X"6A", X"6D", X"64", X"63", X"3E", X"39", X"30", X"37",
  82.             X"22", X"25", X"2C", X"2B", X"06", X"01", X"08", X"0F",
  83.             X"1A", X"1D", X"14", X"13", X"AE", X"A9", X"A0", X"A7",
  84.             X"B2", X"B5", X"BC", X"BB", X"96", X"91", X"98", X"9F",
  85.             X"8A", X"8D", X"84", X"83", X"DE", X"D9", X"D0", X"D7",
  86.             X"C2", X"C5", X"CC", X"CB", X"E6", X"E1", X"E8", X"EF",
  87.             X"FA", X"FD", X"F4", X"F3"
  88.            delimited by size into CRC8-Table
  89.            .
  90.            
  91.        getLen.
  92.            
  93.            move 36 to len
  94.          
  95.            *> Fujitsu: function stored-cahr-length
  96.           *> Otros: un bucle, unstring con x"00" o NOT = SPACES etc.
  97.            .
  98.            
  99.        end program CRC8.
  100.        



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #14
Antiguo 2 de octubre de 2021, 01:20
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

Esto parece competicion
cadena "123"
Resultado ?
JCantero is offline   Responder Con Cita
  #15
Antiguo 2 de octubre de 2021, 01:28
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

Citación del post de JCantero Ver Mensaje
cadena "123"
Resultado ?
Me da 192

---------- Post añadido : 01:28 ---------- Post anterior : 01:26 ----------

@JCantero, por cierto, por lo visto RM/Cobol simplemente NO TIENE campos binarios......
Una flipada la verdad....
Converting RM/COBOL Data Files



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #16
Antiguo 2 de octubre de 2021, 12:33
Dasije
Forero Senior
Última Actividad 06.03.2022 17:04
Posts Posts: 173
Likes enviados Enviados: 1
Likes recibidos Recibidos: 79

Hola @Kuk.

He probado el ejemplo ultimo, el que está más trabajado, y funciona correctamente en NetExpress 3.1

En NetCOBOL funciona, pero no da el resultado correcto, da 37, creo que tiene que ver el tamaño numérico en las variables.

Saludos y gracias.



Empresa de desarrollo de aplicaciones en COBOL.

DASIJE INFORMATICA, S.L.
C/ TOMAS BRETON 20
11406 JEREZ DE LA FRONTERA
CADIZ

Teléfono : 956 11 21 11
Web: http://www.dasije.es / DASIJE INFORMATICA
E-m@il: clientes(@)dasije.es
Dasije is offline   Responder Con Cita
  #17
Antiguo 2 de octubre de 2021, 16:09
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

@Kuk, En RM/Cobol puse crcNUM como pic 9(3) en vez de pic 9(2) y da el mismo resultado.

JCantero is offline   Responder Con Cita
  #18
Antiguo 2 de octubre de 2021, 18:44
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Dasije, para Fujitsu, intenta poner la directiva BINARY(BYTE) a ver qué tal. Si no, también prueba el ejemplo de más arriba, el que usa Integers en vez de Bytes y mira a ver si es correcto.
@Nitzer, tú qué opinas?

@JCantero, las operaciones de bits no pueden funcionar con el PIC 9(3) de Cobol, es decir hasta el valor 999. Si funciona, será que hay alguna transformación implícita por el Run-Time de RM.



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #19
Antiguo 2 de octubre de 2021, 21:54
JCantero
El Foro es mi casa
Activista del Foro: Activista del Foro - Issue reason: Por participación activa Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros 
Última Actividad 02.09.2026 00:15
Posts Posts: 442
Likes enviados Enviados: 167
Likes recibidos Recibidos: 269

@Kuk, Pagina curiosa.

https://paiza.io/projects/G4cdZbJJniTkugqeAOXZZw

Tiene treinta y tantos lenguajes, entre ellos el cobol.

Tu ejemplo en cobol funciona perfectamente.


El que desee, puede hacer pruebas en cualquier dispositivo, movil, tablet, sin tener compilador ni runtime


JCantero is offline   Responder Con Cita
  #20
Antiguo 2 de octubre de 2021, 22:22
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@JCantero, en GNU Cobol funciona también.

Míralo aquí: Online COBOL Compiler - Online COBOL Editor - Run COBOL Online - Online COBOL Runner



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 13:53.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.