Newsgroup: it.comp.lang.c
Titolo: Leggere e scrivere vocali accentate

Buon giorno!
Avrei la necessità di processare un testo in italiano ottenuto da una conversione
da un file pdf in txt (acrobat reader consente di salvare un file pdf come testo txt) al fine di eliminare tutti i caratteri speciali che non sono visualizzabili per esempio su di un terminale alfanumerico.
 
Le difficoltà principali che ho incontrato sono 
1) 
La lettura e riscittura su di un altro file delle lettere accentate
2) 
L'interpretazione dei caratteri speciali, non visualizzabili per esempio con un editor come vi ma che correttamente interpretate magari sono delle virgolette aperte o chiuse
 
Cercando in rete, sembrava che la panaceaa fosse l'utilizzo di wchar.h e tutte le funzioni collegate.
 
Riuscivo a leggere il carattere, ma se si trattava di variabili accentate non venivano stampate (l'idea era leggere il carattere, verificare se era alfanumerico o blank o a capo e ricopiarlo).
 
Il massimo in cui sono riuscito è stato classificare il valore numerico e poi
stamparlo tramite il corrispondete carattere (ad esempio se era 242 stampavo
"ò" (grazie alla tastiera italiana, che in ogni caso odio se devo programmare).
 
Che voi sappiate, esiste un metodo meno _triviale_ del mio per affrontare la questione?
Grazie

 la questione?
 
La copia del file e' un mero leggi/scrivi di byte, per cui non capisco quale
sia il problema. Ma tu probabilmente vuoi fare un qualche tipo di conversione
che non ho capito.
 
Ciao,
 ___ 
/_|_\  Umberto Salsi
\/_\/  
www.icosaedro.it
 
 

 \/_\/  
www.icosaedro.it
 
 
Grazie della tua risposta che in parte mi ha chiarito le idee. 
Ricercare in internet è molto facile ma a volte confonde le idee.
 
Il mio problema nasce dalla necessistà di poter leggere un testo scritto in pdf su di un ebook reader. In questi dispositivi vengono adottati formati tipo epub (ce ne sono molti altri) in grado di riformattare il testo real time sulla base delle dimensioni dello schermo e la dimensione del carattere adottato (un po' come avviene per i browser). Il formato pdf è scomodo in quanto la pagina viene conservata nella sua forma ed il video ne visualizza solo una zona
(come fosse una specie di zoom locale). Per leggere il testo allora bisogna "navigare" nella pagina e diventa molto scomodo.
 
Quello che volevo fare allora era una specie di filtro in grado di selezionare 
i caratteri "normali" e scartare tutti quelli di controllo che il pdf convertito lascia nell'uscita.
 
(per inciso, come dicevi, se facessi una copia uno ad uno del testo, carattere per carattere, semplicemente usando una variabile char il testo viene ricopiato integramente)
 
La domanda a cui non so rispondere allora diventa:
esiste in C una funzione che  sia in grado di discriminare se un carattere deve sopravvivere (lettere maiuscole e minuscole, numeri, vocali accentate, segni di punteggiatura spazi ed a capo) o deve essere scartato?
 
Le funzioni di ctype.h (isalnum, isgraph, isprint) non riconoscono le lettere
accentate.
Daniele

 segni di punteggiatura spazi ed a capo) o deve essere scartato?
 
Io non scriverei affatto un programma per tagliare i caratteri che mi 
danno problemi ma userei programmi già pronti (tipo iconv) per 
convertire nella codifica che mi serve.

Per usare iconv però necrssito di sapere come è codificato il file testo che mi produce acrobat. Esiste un SW che dato un testo fornisce questa indicazione? Inoltre il lettore accetta vari formati (e pub, mobi, txt, HTML, lit, etc) L'unica coca che so è che se il file si vede bene NET txt (a parte i caratteri di controllo tipo salto pagina), l'e pub ottenuto da calibre si vede bene

 indicazione? 
 
Il comando file e forse lo stesso iconv fanno un po' di euristica e 
cercano di indovinare, ma AFAIK non si può dire esattamente.