Newsgroup: it.comp.lang.visual-basic
Titolo: Info su caratteri ASCII

Ciao a tutti!
vi avverto che non sono troppo pratico di VB.
Il quesito è questo. Lo so che deve essere stupidissimo ma proprio non 
riesco a dare una spiegazione logica:
Non riesco a capire perchè se scrivo :
Text1.Text = Chr(Asc("P") + Asc("Y"))
nella Text1 mi compare il simbolo Ascii "©"
Se invece scrivo:
Text1.text  = chr(184)  mi compare un simbolino strano tipo una virgola.
Dico 184 perchè dal codice ASCII della tastiera ITALIANA rissulta proprio 
"©"
Un'altra cosa che non riesco a capire è che , sempre x la tastiera italiana, 
la somma di (Asc("P") + Asc("Y")) dà 169 che equivale a "®" e non 184!!
Inoltre ho controllato anche il codice tastiera delle altre nazioni e quel 
simbolo non c'è neanche!!
Come mai? cosa cambia? ..... sicuramente il deficiente sono io ma non riesco 
a comprendere...
Forse può essere utile sapere che ho WinXP - SP2 e le impostazioni 
internazionali come Italiane con separatore ","
Utilizzo VB6 con SP6
Grazie.
Saluti.
System... 

 Utilizzo VB6 con SP6
No, non c'entra un tubo.
Ciao 

 
ti dirò una cosa  Asc("P") + Asc("Y") =169  appunto "©"

 ha scritto nel messaggio
news:dbqbgb$60i$1...@news.ngi.it...

a) VB non c'entra
b) La codifica ASCII e i codici tastiera sono due cose ben diverse.
Se non erro, per ottenere un carattere dal tastierino numerico dato il suo
codice ASCII, occorre anteporre uno zero:
ALT+(num)0169 --> ©
ALT+(num)0174 --> ®
Bye
Raf

>
Ecco un'altra cosa che non sapervo.....grazie mille! 

 Io non ho capito la domanda.
in breve .... se su VB scrivo: Text1.Text = Chr(Asc("P") + Asc("Y")) 
.....nella text mi viene visualizzato il carattere diciamo corretto e cioè 
"©"
Siccome Asc("P") + Asc("Y")  equivale a 169, se in vb scrivo text1.text = 
chr(169) non mi visualizza più quel carattere ma un simbolo strano...
e di questo volevo sapere il perchè...
Grazie per la risposta.
Saluti.
System. 

 Raf
Si, esatto... funziona così...
Ma ancora non capisco perchè se su VB scrivo: Text1.Text = Chr(Asc("P") + 
Asc("Y")).....
.....nella text mi viene visualizzato il carattere diciamo corretto e cioè 
"©"
Siccome Asc("P") + Asc("Y")  equivale a 169, se in vb scrivo   text1.text = 
chr(169)     non mi visualizza più quel carattere ma un altro. 

 e di questo volevo sapere il perchè...
A me non succede.
Sia uno che l'altro sistema mi danno "©".
La "virgoletta" è il 184, come appunto dicevi.
Ciao 

 ha scritto nel messaggio
news:dbqdc7$6om$1...@news.ngi.it...

Che cosa strana... come fa la somma di Asc("P") + Asc("Y") ad essere diversa da
169 se i due addendi valgono rispettivamente 80 e 89?
Effettua le stesse prove nella finestra di debug:
?Chr(Asc("P") + Asc("Y"))
?Chr(169)
Utilizza una variabile di appoggio
t=Asc("P") + Asc("Y")
Debug.Print t
Text1.Text = Chr(t)
Cosa viene fuori?
Bye
Raf


Ok, Grazie mille! provo e vi faccio sapere..... 

 altro.
Ma ci hai provato davvero, o stai ancora pensando alle prime
prove, in cui ti confondevi tra il 184 e il 169 ?
Prova questo:
Text1.Text = Chr$(Asc("P") + Asc("Y")) & " - " & Chr$(169)
Secondo me (e secondo il mio VB) sono uguali: © - ©
Tra l'altro: controlla le differenze tra Chr e Chr$ ; e rifletti in ogni caso
sul fatto che i caratteri oltre il 127 (ma anche altri, dipende) sono
diversi a seconda del font utilizzato.
Prova a usare nelle tua TextBox un Marlett o un Symbol, e vedi che
fine fanno i caratteri, speciali e non.
Bye, G.