n° 219
Novembre 2017
Dicembre 13, 2017, 01:50:13 *
Benvenuto! Accedi o registrati.
Hai dimenticato l'e-mail di attivazione?

Accesso con nome utente, password e durata della sessione
Notizia:
 
   Indice   Linux Windows Techassistance Gameassistance videogame hardware Aiuto Ricerca Agenda Downloads Accedi Registrati  


* Messaggi recenti
Messaggi recenti
Pagine: [1]   Vai giù
  Stampa  
Autore Discussione: Leggere caratteri speciali  (Letto 1440 volte)
0 utenti e 1 Utente non registrato stanno visualizzando questa discussione.
secks
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 94


Mostra profilo
« inserita:: Aprile 13, 2017, 10:31:20 »

Salve a tutti.

Dovrei leggere un file in cui il prezzo degli articoli è espresso in caratteri ascii.

Ho provato a leggere il carattere con il seguente codice ma mio torna un codice non corretto,
esempio:

           char c = 'Ñ';
            short code = (short)c;  = 209

invece vorrei che tornasse 165 come da tabella ascii estesa ( come ALT 165 dal DOS )

Qualche idea?

Paolo.
Registrato
oregon
Jr. Member
**

Karma: +22/-6
Scollegato Scollegato

Messaggi: 239


Mostra profilo
« Risposta #1 inserita:: Aprile 14, 2017, 09:21:52 »

Questa linea

 short code = (short)c;  = 209

non ha senso. Semmai

 short code = (short)c; 

Ma la lettura da file dove sta?
Registrato
secks
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 94


Mostra profilo
« Risposta #2 inserita:: Aprile 14, 2017, 10:16:44 »

Ok, grazie per l'attenzione.

Quello che cercavo è una funzione che dato un char mi ritorni il numero della tabella ascii estesa:

ad esempio con il carattere "Ñ" ritorni 165, che corrisponde al codice CON ALT + 165 da tastiera numerica, invece con varie prove mi ritorna il numero 209.

Ad esempio ho fatto una semplice funzione:

        private Int32 AscW(String s)
        {
            char c = Convert.ToChar(s);
            short code = (short)c;

            return Convert.ToInt32(code);
        }

ma se gli passo come parametro "Ñ" ritorna 209 invece di 165.

Qualche idea?
Registrato
oregon
Jr. Member
**

Karma: +22/-6
Scollegato Scollegato

Messaggi: 239


Mostra profilo
« Risposta #3 inserita:: Aprile 14, 2017, 02:47:20 »

Puoi usare l'encoding per il codepage 437

Codice:
        private byte ToAsc(String s)
        {
            Encoding enc = Encoding.GetEncoding(437);
            byte[] b = enc.GetBytes(s);
           
            return b[0];
        }
Registrato
secks
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 94


Mostra profilo
« Risposta #4 inserita:: Aprile 17, 2017, 09:58:14 »

Bene, Funziona. Sorriso

Ha un limite fino al numero 255?


Registrato
oregon
Jr. Member
**

Karma: +22/-6
Scollegato Scollegato

Messaggi: 239


Mostra profilo
« Risposta #5 inserita:: Aprile 17, 2017, 10:09:31 »

Stiamo parlando di byte ... quindi...
Registrato
secks
Jr. Member
**

Karma: +0/-0
Scollegato Scollegato

Messaggi: 94


Mostra profilo
« Risposta #6 inserita:: Aprile 18, 2017, 03:13:47 »

Ok grazie. Sorriso
Registrato
Pagine: [1]   Vai su
  Stampa  
 
Vai a:  

Copyright © 2017 Edizioni Master SpA. p.iva : 02105820787

Tutti i diritti di proprietà letteraria e artistica riservati. - Privacy



powered by Simple Machines