Newsgroup: it.comp.lang.visual-basic
Titolo: Conversione Decimale in Esadecimale

Ciao esiste una funzione che mi converta un numero (di un colore RGB) da 
decimale in esadecimale? 


HEX$()  non va bene?
--
ciao
  Stefano

 HEX$()  non va bene?
Oppure numero.ToString("X") se in .Net
Ciao 

 ha scritto nel messaggio 
news:158u5258lgutuop7c...@4ax.com...

Io utilizzo VBA quindi posso fare
Dim Pippo as String
Pippo=HEX$(200)
e dovrebbe salvarmi nella variabile stringa il valore corrispondente in 
esadecimale? 


Si, nella fattispecie:
Pippo = HEX$(200)
   equivale a
Pippo = "C8"
--
ciao
  Stefano

 Pippo = "C8"
E se adesso volessi comvertire 3 numeri 200 300 e 100 e metterli in sequenza 
nella stessa variabile stringa come faccio?
Finale=pippo&pluto&topolino
E' corretto o bisogna scrivere altro? 

 ha scritto nel messaggio 
news:XFG7g.6260$cB3....@tornado.fastwebnet.it...

Ho capito che è Finale=pippo+pluto+topolino 

 E' corretto o bisogna scrivere altro?
Fammi indovinare: non sei un programmatore :)
E' coretto, ma
1) devi considerare che i numeri inferiori a 16 occupano un solo carattere e 
quindi va formattato con Format$(numero, "00")
2) forse conviene convertire il numero corretto (lavori sui colori RGB?) se 
hai solo le 3 componenti forse conviene
numero = R + G * &H100 + B * &H10000 ' RGB o BGR? non mi ricordo mai...
hesa = HEX$(numero)
Ciao 



E' corretto se concateni le stringhe già convertite in HEX.
Potresti anche fare come ha detto Fabio * &H100 e *&H10000 ma questo equivale ad
uno shift di 8 e di 16 bits, quindi alla fine ad una concatenazione di caratteri
a 8 bits come hai scritto tu, ma con meno lavoro della cpu.
--
ciao
  Stefano

 a 8 bits come hai scritto tu, ma con meno lavoro della cpu.
Tu non consideri il padding dei valori esadecimali.
Hex(1) + Hex(2) + Hex(3)
non corrisponde a
Hex(3 + 2 * &H100 + 1 + &H10000) ' vanno invertiti
Ciao 


Si esatto sto lavorando con i colori RGB. Vero non sono un programmatore e 
non mi piace per nulla programmare.
Comunque a me pare che funzioni:
Dim RAveHex As String
        RAveHex = Hex$(RAve)
        Dim GAveHex As String
        GAveHex = Hex$(GAve)
        Dim BAveHex As String
        BAveHex = Hex$(BAve)
        Dim RGBEsadec As String
        RGBEsadec = "#" + RAveHex + GAveHex + BAveHex 

        RGBEsadec = "#" + RAveHex + GAveHex + BAveHex
RGBEsadec = "#" & Right$("00" & Hex$(RAve), 2) & Right$("00" & Hex$(GAve), 
2) & Right$("00" & Hex$(BAve), 2) 

 2) & Right$("00" & Hex$(BAve), 2)
Ma scusate perchč dovrei sostituirlo con questa stringa. A me pare per quei 
colori che ho controllato manualmente che la stringa fatta da me funzioni 
correttamente?
Con questa che vantaggi avrei in piů? 



Che se la HEX$ ti da come risultato un numero ad una cifra (numero minore di
16), l'allineamento č comunque corretto.
Infatti facendo   Right$("0" & Hex$(xAve), 2)    tu metti sempre uno zero se il
numero č minore di 16.
--
ciao
  Stefano


Te lo ha spiegato Fabio poco piů su.
I numeri vanno formattati a coppie altrimenti rischi di avere un colore per 
un'altro.
Esempio
Se hai i tre colori:
R=1
G=7
B=F
Concatenandolo col tuo metodo ottieni:
#17F
che viene interpretato:
#1177FF che č un colore molto diverso da:
#01070F che č quello che otterresti con il metodo che ti ha suggerito Fabio.
ciao
Stefano 

 correttamente?
Questo fino a che i valori restituiti sono a due cifre. Quando uno 
dei colori (o piů) č ad una sola cifra ti si sballa il valore finale.
-- 
Avoid GOTOs completely if you can keep the program readable.
News 2002 [v 2.07] / StopDialer / PopDuster - 
http://www.socket2000.com
Akapulce portal: 
http://www.akapulce.net

"Due di Picche" <mega...@TOGLISPAMaruba.it> ha scritto nel messaggio 
news:e3njm2$ta5$1...@area.cu.mi.it...
[cut]
Ok grazie ho corretto. Adesso si tratta solo di riuscire a capire un 
possibile ordinamento.
Vorrei per alcune tonalità di colore assegnare una classe specifica e per 
altre assegnarne altre. Ma i colori non avendo un ordinamento crescente è 
veramente impossibile definire dei range di lavoro.