PDA

Visualizza la versione completa : [C] Conversione da binario a testo


luca_d
02-03-2006, 12:38
Ciao a tutti,
Esiste in C una funzione che mi converte un file creato di tipo binario in formato ASCII?


Grazie

oregon
02-03-2006, 14:06
Dato che non esiste un "file di tipo binario", la domanda deve essere formulata nuovamente con maggiori dettagli ...

luca_d
03-03-2006, 10:10
Mi scuso per la terminologia non proprio tecnica. Dovrei convertire un file in modo che abbia una struttura tale che il suo contenuto possa essere letto con un editor di testo qualsiasi.

newbie
08-03-2006, 12:13
Originariamente inviato da luca_d
Mi scuso per la terminologia non proprio tecnica. Dovrei convertire un file in modo che abbia una struttura tale che il suo contenuto possa essere letto con un editor di testo qualsiasi.

Ma che intendi esattamente per "formato binario"?

unomichisiada
08-03-2006, 13:06
Originariamente inviato da luca_d
Ciao a tutti,
Esiste in C una funzione che mi converte un file creato di tipo binario in formato ASCII?


Grazie
Si ma quasto file contiene effettivamente solo caratteri ascii, cioè solo stringhe di testo e spazi in sostanza? Oppure contiene anche dati come valori numerici o altro?Nel secondo caso non ha molto senso fare ciò che stai cercando di fare, nel primo l'editor di testo dovrebbe aprirlo già senza problemi se si tratta di "plain text".Come e da cosa è stato creato il file? Se per esempio è in un formato binario proprietario (as esempio quello di word), devi conoscere l'algoritmo di codifica. Facci sapere

luca_d
09-03-2006, 17:49
La definizione della strttura del file nel programma è la seguente:

#define LETTURE "letture.dat", sizeof(lett)

se apro il file con un editor (es edit di DOS) ecco che cosa leggo:
8000133000412
 

grazie per l'aiuto

oregon
09-03-2006, 18:06
Non hai aggiunto molto ...

La define e' inutile rispetto a quanto ti e' stato chiesto.

Quello che leggi dall'editor (a giudicare dai caratteri non visualizzabili) significa che il tuo file NON contiene unicamente caratteri ASCII leggibili ...

Quindi, tornando alla domanda iniziale, non puoi trasformare in ASCII cio' che non e' visualizzabile secondo il codice ASCII ... a meno che tu non voglia vedere il valore esadecimale di ogni byte del file ...

Per intenderci, se nel file c'e' scritto il carattere A allora questo puo' essere visualizzato come

A

oppure come

0x41

che e' il corrispondente esadecimale della A.
Ma se c'e' un carattere di controllo come Escape, questo non puo' essere visualizzato come ASCII (e' appunto tra quelli non visualizzabili) ma solamente in esadecimale, ovvero

0x1B

Quindi, vuoi scegliere la strada dell'esadecimale ?

Loading