Página 1 de 1

funcao para exadecimal

Enviado: 13 Mai 2011 11:30
por tonyx
temos fucao para asc() ; chr() e para -> exa ??
160 => á => A0 procuro funcao me retorne "A0"
asc -> chr-> exa ?

existe ???

funcao para exadecimal

Enviado: 13 Mai 2011 12:12
por alxsts
Olá!

Segue o código de uma função que converte numeros decimais para hexadecimais:

Código: Selecionar todos

* AUTOR: ANDERSON CARDOSO SILVA
* www.caclipperwebsite.com
*******************************

CLS
? 23870, " EM DECIMAL : ", DEC2HEX(23870)
? 188, " EM DECIMAL : ", DEC2HEX(188)
QUIT

FUNCTION DEC2HEX(nDEC)
cHEX :=""
IF VALTYPE(nDEC)="N"
   aBASE16 := {"0","1","2","3","4","5","6","7","8","9",;
               "A","B","C","D","E","F"}
   aHEX := {}
   nDIVIDENDO := nDEC
   nQUOCIENTE := 1
   DO WHILE nQUOCIENTE # 0
      nQUOCIENTE := INT(nDIVIDENDO/16)
      nRESTO     := nDIVIDENDO % 16
      nRESTO++   // SOMA 1 PORQUE aBASE16 COMECA COM "0" E NAO "1"
      cHEX       := aBASE16[nRESTO]
      aADD(aHEX, cHEX)
      nDIVIDENDO := nQUOCIENTE
   ENDDO
ENDIF
cHEX := ""
FOR X=LEN(aHEX) TO 1 STEP -1
    cHEX += aHEX[X]
NEXT

RETURN cHEX
Fonte: http://caclipperwebsite.com/todos/book/export/html/51

funcao para exadecimal

Enviado: 13 Mai 2011 14:51
por tonyx
certo seri uma funcao HEXADECIMAL

funcionaria assim HEXA(160) -> "AO" ou HEXA(a´) -> "AO"

creio funcao acima nao faz isto ????

funcao para exadecimal

Enviado: 13 Mai 2011 15:02
por tonyx
veinho me descupar .. testei e raalmente tal funcao funcionou

grato mesmo

valeu :{ :{ :{

funcao para exadecimal

Enviado: 22 Mai 2011 18:13
por rochinha
Amiguinho,

Faça uso desta funcao que disponibilizo.

Voce apenas terá de passar os parametros o oque e paraoque

Código: Selecionar todos

STATIC FUNCTION DecTOWhat( Oque, ParaQue )
   **************************************************************
   * HexaDecimal 1
   * Caracter    2
   * URL         3
   * Binario     4
   * Octal       5
   **************************************************************
   local aDecTOWhat := {}
   aadd( aDecTOWhat, {  32, "20", " ", "%20", "010 0000", "40" } )
   aadd( aDecTOWhat, {  33, "21", "!", "%21", "010 0001", "41" } )
   aadd( aDecTOWhat, {  34, "22", ["], "%22", "010 0010", "42" } )
   aadd( aDecTOWhat, {  35, "23", "#", "%23", "010 0011", "43" } )
   aadd( aDecTOWhat, {  36, "24", "$", "%24", "010 0100", "44" } )
   aadd( aDecTOWhat, {  37, "25", "%", "%25", "010 0101", "45" } )
   aadd( aDecTOWhat, {  38, "26", "&", "%26", "010 0110", "46" } )
   aadd( aDecTOWhat, {  39, "27", "'", "%27", "010 0111", "47" } )
   aadd( aDecTOWhat, {  40, "28", "(", "%28", "010 1000", "50" } )
   aadd( aDecTOWhat, {  41, "29", ")", "%29", "010 1001", "51" } )
   aadd( aDecTOWhat, {  42, "2A", "*", "%2A", "010 1010", "52" } )
   aadd( aDecTOWhat, {  43, "2B", "+", "%2B", "010 1011", "53" } )
   aadd( aDecTOWhat, {  44, "2C", ",", "%2C", "010 1100", "54" } )
   aadd( aDecTOWhat, {  45, "2D", "-", "%2D", "010 1101", "55" } )
   aadd( aDecTOWhat, {  46, "2E", ".", "%2E", "010 1110", "56" } )
   aadd( aDecTOWhat, {  47, "2F", "/", "%2F", "010 1111", "57" } )
   aadd( aDecTOWhat, {  48, "30", "0", "%30", "011 0000", "60" } )
   aadd( aDecTOWhat, {  49, "31", "1", "%31", "011 0001", "61" } )
   aadd( aDecTOWhat, {  50, "32", "2", "%32", "011 0010", "62" } )
   aadd( aDecTOWhat, {  51, "33", "3", "%33", "011 0011", "63" } )
   aadd( aDecTOWhat, {  52, "34", "4", "%34", "011 0100", "64" } )
   aadd( aDecTOWhat, {  53, "35", "5", "%35", "011 0101", "65" } )
   aadd( aDecTOWhat, {  54, "36", "6", "%36", "011 0110", "66" } )
   aadd( aDecTOWhat, {  55, "37", "7", "%37", "011 0111", "67" } )
   aadd( aDecTOWhat, {  56, "38", "8", "%38", "011 1000", "70" } )
   aadd( aDecTOWhat, {  57, "39", "9", "%39", "011 1001", "71" } )
   aadd( aDecTOWhat, {  58, "3A", ":", "%3A", "011 1010", "72" } )
   aadd( aDecTOWhat, {  59, "3B", ";", "%3B", "011 1011", "73" } )
   aadd( aDecTOWhat, {  60, "3C", "<", "%3C", "011 1100", "74" } )
   aadd( aDecTOWhat, {  61, "3D", "=", "%3D", "011 1101", "75" } )
   aadd( aDecTOWhat, {  62, "3E", ">", "%3E", "011 1110", "76" } )
   aadd( aDecTOWhat, {  63, "3F", "?", "%3F", "011 1111", "77" } )
   aadd( aDecTOWhat, {  64, "40", "@", "%40", "100 0000", "100" } )
   aadd( aDecTOWhat, {  65, "41", "A", "%41", "100 0001", "101" } )
   aadd( aDecTOWhat, {  66, "42", "B", "%42", "100 0010", "102" } )
   aadd( aDecTOWhat, {  67, "43", "C", "%43", "100 0011", "103" } )
   aadd( aDecTOWhat, {  68, "44", "D", "%44", "100 0100", "104" } )
   aadd( aDecTOWhat, {  69, "45", "E", "%45", "100 0101", "105" } )
   aadd( aDecTOWhat, {  70, "46", "F", "%46", "100 0110", "106" } )
   aadd( aDecTOWhat, {  71, "47", "G", "%47", "100 0111", "107" } )
   aadd( aDecTOWhat, {  72, "48", "H", "%48", "100 1000", "110" } )
   aadd( aDecTOWhat, {  73, "49", "I", "%49", "100 1001", "111" } )
   aadd( aDecTOWhat, {  74, "4A", "J", "%4A", "100 1010", "112" } )
   aadd( aDecTOWhat, {  75, "4B", "K", "%4B", "100 1011", "113" } )
   aadd( aDecTOWhat, {  76, "4C", "L", "%4C", "100 1100", "114" } )
   aadd( aDecTOWhat, {  77, "4D", "M", "%4D", "100 1101", "115" } )
   aadd( aDecTOWhat, {  78, "4E", "N", "%4E", "100 1110", "116" } )
   aadd( aDecTOWhat, {  79, "4F", "O", "%4F", "100 1111", "117" } )
   aadd( aDecTOWhat, {  80, "50", "P", "%50", "101 0000", "120" } )
   aadd( aDecTOWhat, {  81, "51", "Q", "%51", "101 0001", "121" } )
   aadd( aDecTOWhat, {  82, "52", "R", "%52", "101 0010", "122" } )
   aadd( aDecTOWhat, {  83, "53", "S", "%53", "101 0011", "123" } )
   aadd( aDecTOWhat, {  84, "54", "T", "%54", "101 0100", "124" } )
   aadd( aDecTOWhat, {  85, "55", "U", "%55", "101 0101", "125" } )
   aadd( aDecTOWhat, {  86, "56", "V", "%56", "101 0110", "126" } )
   aadd( aDecTOWhat, {  87, "57", "W", "%57", "101 0111", "127" } )
   aadd( aDecTOWhat, {  88, "58", "X", "%58", "101 1000", "130" } )
   aadd( aDecTOWhat, {  89, "59", "Y", "%59", "101 1001", "131" } )
   aadd( aDecTOWhat, {  90, "5A", "Z", "%5A", "101 1010", "132" } )
   aadd( aDecTOWhat, {  91, "5B", "[", "%5B", "101 1011", "133" } )
   aadd( aDecTOWhat, {  92, "5C", "\", "%5C", "101 1100", "134" } )
   aadd( aDecTOWhat, {  93, "5D", "]", "%5D", "101 1101", "135" } )
   aadd( aDecTOWhat, {  94, "5E", "^", "%5E", "101 1110", "136" } )
   aadd( aDecTOWhat, {  95, "5F", "_", "%5F", "101 1111", "137" } )
   aadd( aDecTOWhat, {  96, "60", "`", "%60", "110 0000", "140" } )
   aadd( aDecTOWhat, {  97, "61", "a", "%61", "110 0001", "141" } )
   aadd( aDecTOWhat, {  98, "62", "b", "%62", "110 0010", "142" } )
   aadd( aDecTOWhat, {  99, "63", "c", "%63", "110 0011", "143" } )
   aadd( aDecTOWhat, { 100, "64", "d", "%64", "110 0100", "144" } )
   aadd( aDecTOWhat, { 101, "65", "e", "%65", "110 0101", "145" } )
   aadd( aDecTOWhat, { 102, "66", "f", "%66", "110 0110", "146" } )
   aadd( aDecTOWhat, { 103, "67", "g", "%67", "110 0111", "147" } )
   aadd( aDecTOWhat, { 104, "68", "h", "%68", "110 1000", "150" } )
   aadd( aDecTOWhat, { 105, "69", "i", "%69", "110 1001", "151" } )
   aadd( aDecTOWhat, { 106, "6A", "j", "%6A", "110 1010", "152" } )
   aadd( aDecTOWhat, { 107, "6B", "k", "%6B", "110 1011", "153" } )
   aadd( aDecTOWhat, { 108, "6C", "l", "%6C", "110 1100", "154" } )
   aadd( aDecTOWhat, { 109, "6D", "m", "%6D", "110 1101", "155" } )
   aadd( aDecTOWhat, { 110, "6E", "n", "%6E", "110 1110", "156" } )
   aadd( aDecTOWhat, { 111, "6F", "o", "%6F", "110 1111", "157" } )
   aadd( aDecTOWhat, { 112, "70", "p", "%70", "111 0000", "160" } )
   aadd( aDecTOWhat, { 113, "71", "q", "%71", "111 0001", "161" } )
   aadd( aDecTOWhat, { 114, "72", "r", "%72", "111 0010", "162" } )
   aadd( aDecTOWhat, { 115, "73", "s", "%73", "111 0011", "163" } )
   aadd( aDecTOWhat, { 116, "74", "t", "%74", "111 0100", "164" } )
   aadd( aDecTOWhat, { 117, "75", "u", "%75", "111 0101", "165" } )
   aadd( aDecTOWhat, { 118, "76", "v", "%76", "111 0110", "166" } )
   aadd( aDecTOWhat, { 119, "77", "w", "%77", "111 0111", "167" } )
   aadd( aDecTOWhat, { 120, "78", "x", "%78", "111 1000", "170" } )
   aadd( aDecTOWhat, { 121, "79", "y", "%79", "111 1001", "171" } )
   aadd( aDecTOWhat, { 122, "7A", "z", "%7A", "111 1010", "172" } )
   aadd( aDecTOWhat, { 123, "7B", "{", "%7B", "111 1011", "173" } )
   aadd( aDecTOWhat, { 124, "7C", "|", "%7C", "111 1100", "174" } )
   aadd( aDecTOWhat, { 125, "7D", "}", "%7D", "111 1101", "175" } )
   aadd( aDecTOWhat, { 126, "7E", "~", "%7E", "111 1110", "176" } )
   nDecTOWhat := ascan( aDecTOWhat, { |x| x[1] = Oque } )
   IF nDecTOWhat <> 0
      return aDecTOWhat[ nDecTOWhat ][ ParaQue ]
   ENDIF
   RETURN ""
Com base nesta funcao voce podera encontrar o valor de 160 desde que aumente o numero de elementos do vetor aDecToWhat a partir de 127 e colocando o Hexadecimal correspondente, ou seja, 127 seria 7F e 128 seria 80.

Boa sorte.

funcao para exadecimal

Enviado: 23 Mai 2011 08:09
por tonyx
caro mestre ROCHINHA grato pela colaboracao mais creio uma funcao basica mas levaria muitas linhas a de cima como aprendemos no primarios ensino em DOS pode ser aplicada tando na divisai por 2. 4. 8 e 16 (binario; octa e hexa)

alem mais isto tudo fiz saber como aparecer na tela funcao say e get´s funcionar como o windows ... nao sei se o xharbour resilve esta questao...

ja postei minha duvida ate agora nada de resposta como o sr. resolve esta questao de acentuacao .. na hora por em do´c

eu realizo uma conversao;;;

tabela abaixo caso ate possa por esta ideia nos utilitarios do clipper ( e so uma ideia que tive) grato 8-|

Código: Selecionar todos

FUNCTION FTAB_ASC()
 PRIVATE num_asc,c1
 tab_asc:= {}
 for num_asc = 1 TO 255
  aadd( tab_asc, chr(num_asc) )
 next
 do case
 case OPCAO_PRN = 'I'   .AND. IMPRESS = 'M'
  c08:= chr(08)   && comando que retroage o carro da impressora para acentuar
  c39:= chr(39)   && acento agudo
  c94:= chr(94)   && acento circunflexo
  c96:= chr(96)   && acento aspas
  c126:= chr(126)   && acento til
  c44:= chr(44)    && cecidilha
  *------
  tab_asc[160]:= 'a' + c08 + c39
  tab_asc[130]:= 'e' + c08 + c39
  tab_asc[161]:= 'i' + c08 + c39
  tab_asc[162]:= 'o' + c08 + c39
  tab_asc[163]:= 'u' + c08 + c39
  *--------------
  tab_asc[181]:= 'A' + c08 + c39
  tab_asc[144]:= 'E' + c08 + c39
  tab_asc[214]:= 'I' + c08 + c39
  tab_asc[224]:= 'O' + c08 + c39
  tab_asc[233]:= 'U' + c08 + c39
  *------------------------------------
  tab_asc[131]:= 'a' + c08 + c94
  tab_asc[136]:= 'e' + c08 + c94
  tab_asc[140]:= 'i' + c08 + c94
  tab_asc[147]:= 'o' + c08 + c94
  tab_asc[150]:= 'u' + c08 + c94
  *--------------
  tab_asc[182]:= 'A' + c08 + c94
  tab_asc[210]:= 'E' + c08 + c94
  tab_asc[215]:= 'I' + c08 + c94
  tab_asc[226]:= 'O' + c08 + c94
  tab_asc[234]:= 'U' + c08 + c94
  *------------------------------------
  tab_asc[133]:= 'a' + c08 + c96
  tab_asc[138]:= 'e' + c08 + c96
  tab_asc[141]:= 'i' + c08 + c96
  tab_asc[149]:= 'o' + c08 + c96
  tab_asc[151]:= 'u' + c08 + c96
  *--------------
  tab_asc[183]:= 'A' + c08 + c96
  tab_asc[212]:= 'E' + c08 + c96
  tab_asc[222]:= 'I' + c08 + c96
  tab_asc[227]:= 'O' + c08 + c96
  tab_asc[235]:= 'U' + c08 + c96
  *------------------------------------
  tab_asc[198]:= 'a' + c08 + c126
  tab_asc[228]:= 'o' + c08 + c126
  *--------------
  tab_asc[199]:= 'A' + c08 + c126
  tab_asc[229]:= 'O' + c08 + c126
  *------------------------------------
  tab_asc[135]:= 'c' + c08 + c44
  tab_asc[128]:= 'C' + c08 + c44
  *-------------
 case OPCAO_PRN = 'D'   // para doc
  c1:= "\'"
  c2:= "\u"
  *-------------------------  ‚¡¢£  µÖàé
  tab_asc[160]:= c1+"e1"
  tab_asc[130]:= c1+"e9"
  tab_asc[161]:= c1+"ed"
  tab_asc[162]:= c1+"f3"
  tab_asc[163]:= c1+"fa"
  *--------------
  tab_asc[181]:= c1+"c1"
  tab_asc[144]:= c1+"c9"
  tab_asc[214]:= c1+"cd"
  tab_asc[224]:= c1+"d3"
  tab_asc[233]:= c1+"da"
  *------------------------ … Š •—  ·ÔÞãë
  tab_asc[131]:= c1+"e0"
  tab_asc[136]:= c1+"e8"
  tab_asc[140]:= c1+"ec"
  tab_asc[147]:= c1+"f2"
  tab_asc[150]:= c1+"f9"
  *--------------
  tab_asc[182]:= c1+"c0"
  tab_asc[210]:= c1+"c8"
  tab_asc[215]:= c1+"cc"
  tab_asc[226]:= c1+"d2"
  tab_asc[234]:= c1+"d9"
  *------------------------ ƒˆŒ“–  ¶Ò×âê
  tab_asc[131]:= c1+"e2"
  tab_asc[138]:= c1+"ea"
  tab_asc[141]:= c1+"ee"
  tab_asc[149]:= c1+"f4"
  tab_asc[151]:= c1+"fb"
  *--------------
  tab_asc[183]:= c1+"c2"
  tab_asc[212]:= c1+"ca"
  tab_asc[222]:= c1+"ce"
  tab_asc[227]:= c1+"d4"
  tab_asc[235]:= c1+"db"
  *-----------------------  Æä Çå ‡€
  tab_asc[198]:= c1+"e3"
  tab_asc[228]:= c1+"f5"
  *--------------
  tab_asc[199]:= c1+"c3"
  tab_asc[229]:= c1+"d5"
  *---------------
  tab_asc[135]:= c1+"e7"
  tab_asc[128]:= c1+"c7" 
  *-------------------------- Ú ¿ À Ù Â Á Ã ´ ³ Ä Å 
  tab_asc[218]:= c2+"9484"+c1+"2b"
  tab_asc[191]:= c2+"9488"+c1+"2b"
  tab_asc[192]:= c2+"9492"+c1+"2b"
  tab_asc[217]:= c2+"9496"+c1+"2b"
  tab_asc[194]:= c2+"9516"+c1+"2d"
  tab_asc[193]:= c2+"9524"+c1+"2d"
  tab_asc[195]:= c2+"9500"+c1+"2b"
  tab_asc[180]:= c2+"9508"+c1+"a6"
  tab_asc[179]:= c2+"9474"+c1+"a6"
  tab_asc[196]:= c2+"9472"+c1+"2d"
  tab_asc[197]:= c2+"9532"+c1+"2b"
 endcase
RETURN(NIL)
*----------------------------