Salve a tutti.
Dato un file binario ascii utilizzando un algoritmo che ho trovato in rete sono riuscito ad ottenere il file esadecimale corrispondente. Ecco ,a me interesserebbe avere anche l'esatto contrario, ossia dato un file di testo che contiene solo caratteri esadecimali
ad esempio
"4369616F204D6F6E646F21212121"
che mi restituisca un file di testo convertito, in questo caso
"Ciao Mondo!!"
è ovvio che occorre controllare due caratteri per volta. Grazie in amticpo per l'aiuto. Cordial saluti. Ciaoo.
il codice che ho sato per le conversioni da testo normale ascii a testo corrispondente esadecimale è
Quello che uso invece per la conversione opposta, quello che non funziona, ècodice:FILE *fp, *fw; char c; if((fp = fopen("C:\`test.bin","rb")) == NULL) return 0; if((fw = fopen("C:\\out.txt","wb")) == NULL) return 0; while((c = fgetc(fp))!=EOF) fprintf(fw, "%02X", (unsigned char)c); fclose(fw); fclose(fp);
dove è l'errore? Mi crea comunque un file di testo, ma contiene tutti caratteri uguali, ÌÌÌÌÌÌÌÌ.codice:FILE *pFile, *fw2; if((pFile = fopen("C:\\A\\file2.txt","rb")) == NULL) return 0; if((fw2 = fopen("C:\\A\\out2.txt","wb")) == NULL) return 0; int v; char c; unsigned char c2; while(fscanf(pFile, "%02X", &v)!=EOF) { c = (unsigned char)v; fprintf(fw2, "%c", c2); } fclose(pFile); fclose(fw2);
Grazie in anticipo. Cordiali saluti. Ciaooo

Rispondi quotando
)
