Hola, tengo un problema con mi función en vfp con la conexión de balanzas (protocolo tipsa), resulta que cuando mando un precio como 9,50 no se me comunica con la balanza y con el resto me funciona correctamente. He estado informándome por foros y he encontrado este hilo el cual dice que el problema es que hace mal la suma lógica XOR: http://www.clubdelphi.com/foros/showthread.php?t=63904
Es el mismo problema que me ocurre a mi pero no soy capaz de seguir los pasos indicados y realizarlo en visual fox pro 9. Por favor necesito ayuda de como hacerlo, el código que uso es el siguiente:
A=VAL(SUBSTR(STR(PRECIO,6,2),1,1))
B=VAL(SUBSTR(STR(PRECIO,6,2),2,1))
C=VAL(SUBSTR(STR(PRECIO,6,2),3,1))
D=VAL(SUBSTR(STR(PRECIO,6,2),5,1))
E=VAL(SUBSTR(STR(PRECIO,6,2),6,1))
thisform.oleBascula.output=ALLTRIM("98"+ALLTRIM(STR(A))+ALLTRIM(STR(B))+ALLTRIM(STR(C))+ALLTRIM(STR(D))+ALLTRIM(STR(E))+ALLTRIM(STR(BITXOR(9,8,a,b,c,d,e))))+chr(13)+chr(10)
Gracias por vuestra atención, saludos
Saludos cordiales estimado Gonzalo:
Lo que veo en tu codigo es que pones fragmentos de la variable precio y los concatenas.
Por otro lado mencionas que debes calcular la suma lógica XOR.
Mi pregunta es: que codigo usas para calcular la suma lógica XOR?
Buen dia.
Carlos Alfaro
Según lo que dice en ese link, te falta convertirlo a hexadecimal, de la siguiente manera:
En primer lugar en VFP no hay funcion de conversión a hexadecimal, por lo que hay que crearla, en el link:
Encontré el siguiente código:
* Funcion para pasar de decimal a hexadecimal
function Dec2Hex(tnDec)
return SUBSTR(TRANSFORM(tnDec,";@0"),3)
endfunc
* Funcion para pasar de hexadecimal a decimal
function Hex2Dec(tcHex)
return EVALUATE("0x"+ALLTRIM(tcHex))
endfunc
Entonces lo que dice en el link que pusiste de referencia es que debe enviar la concatenación:
Chr(hex2dec(‘9’))+ [“los demás digitos de igual manera a la muestra”] + alltrim(str(dec2hex(bitxor(hex2dec(‘9’), hex2dec(‘8’), [“Igual aquí colocar los demás digitos a evaluar”] ))))
Pero es posible que la función para convertir a hexadecimal de la muestra en Delphi no se comporte exactamente igual que la función que encontré, si yo tuviera tiempo me pondría a probar para darte mayor seguridad.
A ver si te da el resultado necesario.
Atentamente,
Habeas Data: La Compañía Internacional de Alimentos Agropecuarios CIALTA S.A.S. cumple con los requerimientos de la Superintendencia de Industria y Comercio de Colombia sobre el manejo de información de datos personales, lo cual implica tener políticas claras de tratamiento de Base de Datos que usted puede consultar: Politicas Habeas Data
Si desea tener más información sobre el particular, puede escribirnos al correo habea...@cialta.com