Modifications

Aller à : navigation, rechercher

Fichier texte corrompu

1 881 octets supprimé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.
À 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 !
Sinon directement le code ici:
<blackquote><div style="background-color: #ddf5eb; border-style: dotted;">/*Récupération des éléments textuels dans un fichier xml corrompu (fichier docx corrompu à la base)Permet en autre de récupérer 3 mois de travail de traductionCopyleft pour tous les zozos et les loulous.*/ // le document xml à exploiter (attention on commencera à chercher les child à partir de la balise <body> et . En fait non <document>)String ba = "document2.xml";  void setup() { XML xml = loadXML(ba);  // la variable String dans laquelle car je vais ajouter les éléments textuels récupérés dans mon XML au fur et à mesure. String texte = "";  // Je récupère dn'abord les elts ai pas trouvé comment insérer du code dans la balise body XML niveau_zero = xml.getChildmediawiki ("body"); // évidemment il y a bcp de balises <p> dans cette balise <body> il convient de les récupérer toutes. XML[] niveau_un = niveau_zero.getChildren("p");  // je scanne ma boucle avec toutes mes balises <p> // une âme charitable pour y récupérer mes balises <r>... et oui for (int k=0; k<niveau_un.length; k++) { XML niveau_deux = niveau_un[k].getChild("r"); // si nous avons bien une balise <r> dans la balise <p> alors on peut // regarder sm'il y a indiquer une balise <t>, ces fameuses balises qui contiennent // des elements textuels. if (niveau_deux != null) { XML[] children = niveau_deux.getChildren("t"); // j'ajoute le contenu textuel récolté à ma variable texte. for (int i=0; i<children.length; i++) { texte += children[i].getContent(); } } }  // petite manipe peu élégante pour imprimer le contenu de la variable texte // dans un fichier .txt if (texte != null) { String textFinal [] = { " ", " " }; textFinal = append(textFinal, texte); saveStrings("testExport.txt", textFinal); println(texte); }} void draw(solution ?) {}</div></blackquote>
== C'est fini !==
1 233
modifications

Menu de navigation