Ver Mensaje Individual
  #11  
Antiguo Hace 6 Días
josevalle josevalle is offline
Miembro
 
Registrado: may 2017
Posts: 27
Reputación: 0
josevalle Va por buen camino
Hola:

En chilkat hay una función mucho mas rápida.

Pero, si no recuerdo mal, visual objects usaba sintaxis de xbase++ en ese caso te puede valer este código:

FUNC CRC8(pCad)
***************
LOCAL I_TEMP:=""
LOCAL cAux:=""
LOCAL nAux:=0
LOCAL nCrc:=0
LOCAL cCad:=0

LOCAL aCrc:={;
0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15,; //1-8
0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D,; //9,16
0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65,; //17,24
0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D,; //25,32
0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5,; //33,40
0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD,; //41,48
0x90, 0x97, 0x9E, 0x99, 0x8C, 0x8B, 0x82, 0x85,; //49,56
0xA8, 0xAF, 0xA6, 0xA1, 0xB4, 0xB3, 0xBA, 0xBD,;
0xC7, 0xC0, 0xC9, 0xCE, 0xDB, 0xDC, 0xD5, 0xD2,;
0xFF, 0xF8, 0xF1, 0xF6, 0xE3, 0xE4, 0xED, 0xEA,;
0xB7, 0xB0, 0xB9, 0xBE, 0xAB, 0xAC, 0xA5, 0xA2,;
0x8F, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9D, 0x9A,;
0x27, 0x20, 0x29, 0x2E, 0x3B, 0x3C, 0x35, 0x32,;
0x1F, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0D, 0x0A,;
0x57, 0x50, 0x59, 0x5E, 0x4B, 0x4C, 0x45, 0x42,;
0x6F, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7D, 0x7A,;
0x89, 0x8E, 0x87, 0x80, 0x95, 0x92, 0x9B, 0x9C,;
0xB1, 0xB6, 0xBF, 0xB8, 0xAD, 0xAA, 0xA3, 0xA4,;
0xF9, 0xFE, 0xF7, 0xF0, 0xE5, 0xE2, 0xEB, 0xEC,;
0xC1, 0xC6, 0xCF, 0xC8, 0xDD, 0xDA, 0xD3, 0xD4,;
0x69, 0x6E, 0x67, 0x60, 0x75, 0x72, 0x7B, 0x7C,;
0x51, 0x56, 0x5F, 0x58, 0x4D, 0x4A, 0x43, 0x44,;
0x19, 0x1E, 0x17, 0x10, 0x05, 0x02, 0x0B, 0x0C,;
0x21, 0x26, 0x2F, 0x28, 0x3D, 0x3A, 0x33, 0x34,;
0x4E, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5C, 0x5B,;
0x76, 0x71, 0x78, 0x7F, 0x6A, 0x6D, 0x64, 0x63,;
0x3E, 0x39, 0x30, 0x37, 0x22, 0x25, 0x2C, 0x2B,;
0x06, 0x01, 0x08, 0x0F, 0x1A, 0x1D, 0x14, 0x13,;
0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB,;
0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83,;
0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB,;
0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3 ;
}


cCad := trim(pcad)
nCrc:=0

FOR I_TEMP=1 TO LEN(cCad)

cAux := SUBS(cCad,I_TEMP,1)
nAux := ASC(cAux)

nCrc := aCrc[ band(numxor(nCrc,nAux),255)+1 ]

NEXT

RETURN nCrc


Cita:
Empezado por PAPAGUSO Ver Mensaje
Hola soy nuevo por aquí y todavía no se cómo hacer una consulta nueva.

El caso es que tengo hecha una función para el cálculo de CRC en php y lo tengo colgado en un servidor web y funciona correctamente.

Pero quiero si me podéis ayudar con un programa exe sacarlo del servidor.

Trabajo en Visual Objects y no encuentro cómo hacer la operación de generación del código ya que el chapgpt me indica que use la función bindata que mi versión no la tiene.

Tengo compradas las librerías chilkat.

Un saludo y perdón por el royo.
Responder Con Cita