Fichier texte corrompu

De fablabo
Révision de 20 juin 2013 à 14:51 par ThomasB (discussion | contributions) (Récupérer le contenu textuel depuis le fichier document.xml)

Aller à : navigation, rechercher


réparation fichier corrompu

Docx.jpg

Contributeur·ice·s

User:[[contributeur::ThomasB
La propriété « Contributeur » (comme le type de page) avec la valeur d’entrée « User:[[contributeur::ThomasB » contient des caractères non valides ou est incomplète, et donc peut provoquer des résultats inattendus lors d’une requête ou d’un processus d’annotation.
|ThomasB]]

Statut du projet

fonctionnel

Statut de la publication

License

GPL

Inspiration

Fichiers source

Machines

Matériaux

Lien





Comment récupérer le texte d'un document .docx corrompu ?

Ça arrive à tous le monde, au moins une fois dans sa vie, parfois on bosse sur un mémoire, un rapport de stage, une thèse, une traduction, son autobiographie... Des milliers de caractères qui s'enchaînent les uns à la suite des autres.

On fait pas forcément attention à sauvegarder 20 versions différentes de son documents, dans 30 dossiers chiffrés afin de s'assurer de la pérennité de son travail... Et un beau jour (...) notre fichier maViemonOeuvre.docx ne veut plus s'ouvrir.

AHHHHHHHHH !!!!

Notre fichier est corrompu, c'est foutu, je t'avais bien dit de pas utiliser des logiciels libres, c'est vraiment pas fiable...Bref c'est la panade.

Tout d'abord il faut savoir que ce genre de problème n'est pas inhérent à l'utilisation de solutions libres (d'ailleurs .docx est la propriété de Microsoft ©©©), c'est également très présent dans des solutions propriétaires. Quant à l'origine du bug, ça reste un mystère (importation de données copier-coller depuis le web ? vérole envoyée par de vils personnages ?...)

Ouvrir le .docx avec le gestionnaire d'archive

Et maintenant une solution... :

Les documents textes "complexes" tels que ceux utilisés avec libreOffice, mais aussi openOffice, word etc. sont en fait des paquets contenant plusieurs types de fichiers. En somme un fichier .odt ou ici .docx s'apparentent plus à un dossier qu'à un fichier. C'est le syndrome des poupées russes.

Intéressons nous au format .docx : https://fr.wikipedia.org/wiki/Docx

Alors comment accéder au contenu disponible dans un fichier .docx ? Et bien tout simplement en utilisant un gestionnaire d'archives.

"Le format docx est en fait un fichier compressé au format ZIP qui contient un ensemble de fichiers (XML, images .jpg) décrivant le document."
Ce qu'il y a dans votre fichier .docx

Ouvrir le fichier document.xml

Une fois à ce stade, il faut se rendre dans le dossier "word", dans lequel on trouve tout un ensemble de fichier .xml.

Petit cachottier !

On y trouve le fichier document.xml, c'est celui ci qui contient l'ensemble du texte que vous avez pu rédiger durant de nombreuses heures de labeur (hormis les commentaires, notes et autres éléments graphiques). En tout cas l'essentiel de votre pensée féconde se trouve dans ce fichier.

Vous pouvez ouvrir document.xml avec un éditeur de texte type gedit, mousepad ou leafpad. Vous vous rendrez compte alors de la riche pensée complexe des types qui inventent les langages informatiques, en admirant toutes ces magnifiques balises et ce rigoureux rangement bien ordonné, mais malheureusement bien laborieux pour l’œil d'un humain.

Qu'est ce que le XML ?

On va pas réinventer la poudre :

https://fr.wikipedia.org/wiki/Extensible_Markup_Language

http://xml.chez.com/initiation/

http://www.commentcamarche.net/contents/1332-introduction-a-xml

Récupérer le contenu textuel depuis le fichier document.xml

À partir de maintenant il s'agit de pouvoir récupérer dans ce qui ressemble à ça :

<w:pPr><w:pStyle w:val="style0"/><w:suppressAutoHyphens w:val="false"/><w:spacing w:after="120" w:before="240" w:line="480" w:lineRule="auto"/><w:jc w:val="left"/></w:pPr><w:r><w:rPr><w:rFonts w:ascii="Courier New" w:cs="Lohit Hindi" w:eastAsia="WenQuanYi Micro Hei" w:hAnsi="Courier New"/><w:sz w:val="24"/><w:szCs w:val="24"/></w:rPr><w:t>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed non risus. Suspendisse lectus tortor, dignissim sit amet, adipiscing nec, ultricies sed, dolor. Cras elementum ultrices diam. Maecenas ligula massa, varius a, semper congue, euismod non, mi. Proin porttitor, orci nec nonummy molestie, enim est eleifend mi, non fermentum diam nisl sit amet erat. Duis semper. Duis arcu massa, scelerisque vitae, consequat in, pretium a, enim. Pellentesque congue. Ut in risus volutpat libero pharetra tempor. Cras vestibulum bibendum augue. Praesent egestas leo in pede. Praesent blandit odio eu enim. Pellentesque sed dui ut augue blandit sodales. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Aliquam nibh. Mauris ac mauris sed pede pellentesque fermentum. Maecenas adipiscing ante non diam sodales hendrerit. Ut velit mauris, egestas sed, gravida nec, ornare ut, mi. Aenean ut orci vel massa suscipit pulvinar. Nulla sollicitudin. Fusce varius, ligula non tempus aliquam, nunc turpis ullamcorper nibh, in tempus sapien eros vitae ligula. Pellentesque rhoncus nunc et augue. Integer id felis. Curabitur aliquet pellentesque diam. Integer quis metus vitae elit lobortis egestas. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi vel erat non mauris convallis vehicula. Nulla et sapien. Integer tortor tellus, aliquam faucibus, convallis id, congue eu, quam. Mauris ullamcorper felis vitae erat. Proin feugiat, augue non elementum posuere, metus purus iaculis lectus, et tristique ligula justo vitae magna. Aliquam convallis sollicitudin purus. Praesent aliquam, enim at fermentum mollis, ligula massa adipiscing nisl, ac euismod nibh nisl eu lectus. Fusce vulputate sem at sapien. Vivamus leo. Aliquam euismod libero eu enim. Nulla nec felis sed leo placerat imperdiet. Aenean suscipit nulla in justo. Suspendisse cursus rutrum augue. Nulla tincidunt tincidunt mi. Curabitur iaculis, lorem vel rhoncus faucibus, felis magna fermentum augue, et ultricies lacus lorem varius purus. Curabitur eu amet. .</w:t></w:r>

Processing ?

C'est fini !