Modifications

Fichier texte corrompu

5 750 octets ajoutés, 19 janvier 2018 à 17:02
aucun résumé de modification
{{Projet<!--Header-->Tutoriel|name = Récupération contenu textuel document .docx corrompu|status =fonctionnel<!--Image-->|image = docx.jpg<!--General-->|description = réparation fichier corrompu|license = GPL|contributeurs = [[contributeur::ThomasB]] |matériaux ingrédients= [[materiau::informatique]], [[materiau::code]]|categories =[[:Catégorie:(s)lowtech]], [[:Catégorie:reparation]] , [[:Catégorie:retroingéniere]] |cadModel = |url =
}}
= Comment récupérer le texte d'un document .docx corrompu ? =
Ça Cela arrive à tous tout 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.
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 doucmentdocument.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 langagesinformatiques, 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 ? ==
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 :
 
 
<blockquote>
<nowiki>
<w:r><w:rPr><w:rFonts w:ascii="Courier New" w:cs="Lohit Hindi" w:eastAsia="WenQuanYi Micro Hei" w:hAnsi="Courier New"/><w:b/><w:bCs/><w:i/><w:iCs/><w:sz w:val="24"/><w:szCs w:val="24"/><w:lang w:val="fr-FR"/></w:rPr><w:t xml:space="preserve"> / qui m'''a donné </w:t></w:r><w:r><w:rPr><w:rFonts w:ascii="Courier New" w:cs="Lohit Hindi" w:eastAsia="WenQuanYi Micro Hei" w:hAnsi="Courier New"/><w:b/><w:bCs/><w:i/><w:iCs/><w:sz w:val="24"/><w:szCs w:val="24"/><w:shd w:fill="FFFF00" w:val="clear"/><w:lang w:val="fr-FR"/></w:rPr><w:t>son cœur</w:t></w:r><w:r><w:rPr><w:rFonts w:ascii="Courier New" w:cs="Lohit Hindi" w:eastAsia="WenQuanYi Micro Hei" w:hAnsi="Courier New"/><w:b/><w:bCs/><w:i/><w:iCs/><w:sz w:val="24"/><w:szCs w:val="24"/><w:lang w:val="fr-FR"/></w:rPr><w:t xml:space="preserve"> envers et contre tout.</w:t></w:r></w:p><w:p><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:r></w:p><w:p><w:pPr><w:pStyle w:val="style0"/><w:pageBreakBefore/><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:r></w:p><w:p><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:r></w:p><w:p><w:pPr><w:pStyle w:val="style27"/><w:suppressAutoHyphens w:val="false"/><w:jc w:val="center"/></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:b/><w:bCs/><w:sz w:val="32"/><w:szCs w:val="32"/></w:rPr><w:t>1</w:t></w:r></w:p><w:p><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:r></w:p><w:p>
<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>
</blockquote>
</nowiki>
 
Bon là c'est facile, on voit bien le texte, mais imaginez plein de petits bouts de textes tout éclaté dans le xml et qu'il faut récupérer patiemment à la main pendant des heures... non ce n'est pas diable possible !
Il faut utiliser un programme qui permette de trier dans toutes ces balises et d'extraire les données qui nous intéressent.
 
Comme je n'ai pas ça sous la main (si quelqu'un connaît ça sous GNU/Linux qu'il me fasse signe ! ) en faisant un bout de code on doit pouvoir arriver à nos fins.
 
Certains développeurs à l'éthique irréprochable me soutiendront qu'il vaudrait mieux faire ça avec python et d'autres avec Caml, mais voyez vous, j'y connait à peu près rien alors j'ai fais ça avec Processing. C'est sûrement peu performant mais on va dire que ici, Processing est mon couteau-suisse.
== Processing ? ==
 
Alors pour extraire mes textes de mon fichier .xml j'ai utilisé Processing:
http://www.processing.org/
 
C'est pas compliqué à installer, sur toutes les plateformes :
https://www.processing.org/download/
 
Le code est disponible à cette adresse :
https://gitorious.org/parse_texte_xml_processing/parse_texte_xml_processing/trees/master
Vous avez un bouton download en bas à droite.
 
Sinon directement le code ici:
... En fait non car je n'ai pas trouvé comment insérer du code dans mediawiki (une âme charitable pour m'indiquer une solution ?)
== C'est fini !==
1 233
modifications