![]() |
String para Decimal
Necessito de achar um valor único de uma string, para criar uma chave, já que chaves primarias ou alternadas tem um limite máximo de 255 bytes.
Calcular o valor ASCII do mesmo poderia ser uma possibilidade... Esta função: Código COBOL:
é uma possiblidade mas necessito de percorrer uma string grande, tipo: Código COBOL:
Conhecem alguma alternativa? Gracias, |
Cita:
Código COBOL:
También mira esto a ver si dura menos, el cálculo será diferente pero puede servir igual creo: Código COBOL:
Código COBOL:
|
Ainda não tenho a solução para o problema.
Pretendia que a string: "101.10.01" fosse SEMPRE diferente de: "101.10.10" ...e tenho casos em que o cálculo dá o mesmo valor. Gracias por qualquer ajuda. Cita:
|
@Joseg, prueba con la última versión, la de byte occurs 750 pic 9(9) comp-5. porque ahí toma 4 bytes con lo cual también tiene en cuenta el orden.
A mi me funciona, mira el ejemplo que has dado da diferente resultado con el método que digo: Código:
PIC X(12) VALUE "101.10.01" --> 00000000002122285203 |
1 Archivos Adjunto(s)
Cita:
|
Cita:
|
@Joseg,
MainForm -> EDIT PROCEDURE DIVISION -> NEW, renombra en PRC-CALC Edita y pega esto: Código COBOL:
Código del botón Nº1: Código COBOL:
Código del botón Nº2: Código COBOL:
|
Cita:
Entendo a ideia. Mas não posso usar. Eu quero mais tarde validar o registo voltando a calcular o valor original tendo por base esta string "121-03-10;121-17-00;121-03-10;121-17-00;121-05-01;", para ver se o registo já existe. Se a "primary key" não tivesse o limite de apenas 255 bytes (ficheiros ISAM), não tinha este problema. Simplesmente definia como chave única: Código COBOL:
Mas como a String pode conter até 3000 bytes tenho que procurar outra solução. |
@Joseg, creo que lo he arreglado:
Código COBOL:
Es que estábamos tontos macho, con la SUMA no vale, y lo sabemos desde el cole :D Cita:
|
Cita:
"Es que estábamos tontos macho, con la SUMA no vale, y lo sabemos desde el cole" :bat: :bat: Agora si !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!! Muitas muitas gracias Kuk |
| La franja horaria es GMT +2. Ahora son las 16:39. |
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.