PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 25 → Exemplo de função Hexa2BinaySting e BinaryString2Hexa
Exemplo de função Hexa2BinaySting e BinaryString2Hexa
Iniciado por Boller, 27,dic. 2022 15:24 - No hay respuesta
Miembro registrado
4.521 mensajes
Publicado el 27,diciembre 2022 - 15:24
PROCÉDURE PUBLIC Hexa2BinaySting(sHexa)

sEpcBin is string
sByteBin is string
sByteHexa is string
ni is int = 1


WHILE ni < Length(sHexa)
sByteHexa = Middle(sHexa,ni,2)
sByteBin = Int2BinaryString(HexaToInt(sByteHexa))
sByteBin = Complète("0",8 - Length(sByteBin),"0") + sByteBin
sEpcBin = sEpcBin + sByteBin
ni = ni + 2
END

RESULT sEpcBin


PROCÉDURE PRIVATE BinaryString2Hexa(sBinary)

sHexa is string
sByte is string
ni is int = 1


WHILE ni < Length(sBinary)
sByte = Middle(sBinary,ni,8)
sHexa = sHexa + NumToString(Val(sByte,2),"02X")
ni = ni + 8
END

RESULT sHexa


PROCÉDURE PRIVATE Int2BinaryString(Dividende) // passage du parametre nombre ENTIER à convertir

nDividende is int=Dividende // nombre à convertir
sBINAIRE is string // accumule les "modulo"
sChaineAffichée is string
nBase is int=2 // base 2 (ou 5, ou 7 ... )
nReste is int // reste de la division
ni is int

IF nDividende = 1 THEN
sBINAIRE+="1"
END

WHILE nDividende>1
nReste=modulo(nDividende,nBase)
sBINAIRE+=NumToString(nReste) // incrémente sBinaire
nDividende=IntegerPart(nDividende/nBase)
IF nDividende=1 THEN
sBINAIRE+="1"
END

END

FOR ni=Length(sBINAIRE) TO 1 STEP -1 // renverse la chaine
sChaineAffichée+=Middle(sBINAIRE,ni,1)
END
RESULT sChaineAffichée


by YVES ROULET

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Mensaje modificado, 27,diciembre 2022 - 15:54