Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Problemi in freepascal riguardanti alt219 e la unit crt
Forum - Pascal - Problemi in freepascal riguardanti alt219 e la unit crt

Avatar
Spaxen (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/05/2016

Segnala al moderatore
Postato alle 19:40
Lunedì, 30/05/2016
Salve a tutti,non sono ancora molto pratico riguardo questo linguaggio e la programmazione in generale.
Il mio problema è il seguente:non riesco ad ottenere il codice ALT219 in Pascal utilizzando la unit crt.
Dunque anzichè ottenere █ ottengo una strana U.Posto il sorgente:
Codice sorgente - presumibilmente Pascal

  1. program Test;
  2. uses crt;
  3. begin
  4. write('â–ˆ');
  5. readln
  6. end.


Spero che qualcuno posso aiutarmi e magari spiegarmi perchè ho questo problema.:-?
Non so perchè ma al posto della 'â–ˆ' dovrebbe stampare █.

Ultima modifica effettuata da Spaxen il 30/05/2016 alle 19:42
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 20:32
Lunedì, 30/05/2016
Ciao !

Purtroppo, in pascal, avrai problemi a stampare i caratteri simbolici siccome la codifica in unicode e ASCII sono diverse.
Nello specifico per stampare il carattere █ usa la funzione chr( < numero intero > ) . Essa riceve un intero, e restituisce il carattere ASCII corrispondente.
Esempio:
Codice sorgente - presumibilmente Pascal

  1. program test;
  2. uses crt;
  3.  
  4. begin
  5.  writeln('Test');
  6.  writeln(chr(219));
  7.  readln;
  8. end.


Ultima modifica effettuata da Poggi Marco il 30/05/2016 alle 20:33


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
Spaxen (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/05/2016

Segnala al moderatore
Postato alle 22:23
Lunedì, 30/05/2016
Ciao!
Grazie mille per la risposta;ho provato a scrivere il sorgente come hai scritto tu ma nulla..mi restituisce sempre quella strana u ;la cosa curiosa è che se tolgo la libreria crt non ho alcun tipo di problema.Ahimè crt è fondamentale per il mio esercizio.Altre idee?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 950
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 22:05
Martedì, 31/05/2016
Nemmeno io ho trovato il modo di stampare █.
In alternativa puoi operare sul colore di sfondo del testo, e stampare uno spazio.

Esempio:
Codice sorgente - presumibilmente Pascal

  1. program Test;
  2. uses crt;
  3.  
  4. begin
  5.   writeln('Test ');
  6.   textbackground(7); // imposto il colore di sfondo a grigio
  7.   writeln(' '); // stampo uno spazio
  8.   textbackground(0); // riporto il colore di sfondo a nero
  9.   readln;
  10. end.



Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
Spaxen (Normal User)
Newbie


Messaggi: 3
Iscritto: 30/05/2016

Segnala al moderatore
Postato alle 11:20
Mercoledì, 01/06/2016
Ciao,grazie mille!Va benissimo.
In ogni caso spulciando nel help in linea ed andando a vedere i paragrafi dediti al crt ho trovato questo: "The CRT unit stems from the TP/Dos area. It is designed to work with single-byte character sets, where 1 char = 1 byte. That means that widestrings or UTF-8 encoded (ansi)strings will not correctly work.".Quindi credo sia normale che non corrispondano determinati caratteri.
Grazie mille,la tua soluzione va benissimo!:k:

PM Quote