Home FAQ Recupero del testo da un file .asd corrotto
Recupero del testo da un file .asd corrotto PDF Stampa E-mail
Windows - Tips 'n Tricks
Scritto da V. Renò   
Venerdì 05 Dicembre 2008 13:55

Questo articolo nasce da un'esperienza sul campo avuta ieri sera, è un articolo inaspettato e che non avrei mai pensato di scrivere in quanto è nato tutto dall'improvvisazione e dalla necessità di raggiungere un traguardo altrimenti irrangiungibile: recuperare un documento di MS Word 2007 dal file di recupero automatico .asd "corrotto".

Per prima cosa è necessario constatare l'effettiva corruzione del file ed è possibile farlo tentando di aprirlo forzatamente con Word, se è così si otterà un messaggio di errore. Con queste premesse, alla base della risoluzione del problema c'è la considerazione che nel file aperto con un notepad è possibile notare sequenze verosimilmente coerenti di caratteri, frammiste a simboli incomprensibili: la logica del programmino è quella di effettuare un filtraggio del file binario .asd in un file di testo di output in modo tale da recuperare quante più informazioni possibile.
Il programmino che risolve questa problematica è stato scritto in linguaggio C ed è molto poco accademico, ma funzionale per quel che riguarda il recupero del testo scritto. Per prima cosa è necessario recuperare la dimensione in bytes del file .asd ed è possibile farlo con il classico metodo "tasto destro, proprietà", successivamente bisogna scrivere il seguente codice sorgente in un file .c:

#include <stdio.h>
int main()
{
    FILE *fp,*out;
    char buf[85000]; //sostituire ad 85000 un numero lievemente maggiore della dimensione del file .asd
    int i;

    fp = fopen("input.asd", "rb");
    out = fopen("uscita.txt", "w");

    fread(buf,sizeof(char),81920,fp); //sostituire ad 81920 la dimensione in bytes del file da recuperare

    for(i=0;i<81920;i++)
        if(buf[i]>=32 && buf[i]<=122)
            fprintf(out,"%c", buf[i]);

    fclose(fp);
    fclose(out);

    return 0;
}


Dopo aver compilato ed eseguito il codice si otterrà il file uscita.txt che sarà stato filtrato e sarà probabilmente possibile recuperare quasi tutto il lavoro apparentemente perso. L'esperienza sul campo è stata effettuata con un file input.asd grande 81920 bytes contenente una relazione e, dopo il filtraggio, uscita.txt è risultato essere 22973 bytes, è stato inoltre possibile ricomporre le varie parti della relazione a meno degli apostrofi e di alcune lettere accentate.
Questo traguardo raggiunto è estremamente importante in quanto varie soluzioni trovate sul web si fermano quando incontrano un file corrotto, mentre in questo caso c'è un'ultima possibilità di accesso al file che, nel caso specifico, ha consentito un recupero quasi totale del documento in oggetto. Sono particolarmente soddisfatto in quanto sono stato l'ideatore del suddetto codice e ricordo a tutti che, in pieno spirito open source, sono ben accette modifiche, migliorie, idee e riedizioni del programma appena pubblicato.

 

Utenti connessi

 25 visitatori online



Creative Commons License

Questo sito è pubblicato sotto licenza Creative Commons
DeSfA - De Shell Facemmo Ali