J'ai un beau buffer mais sais pas le lire :)
Hello,
J'ai rempli un beau buffer mais je sais pas trop comment récupérer ce qu'il y a dedans (c'est un fichier XML)
le code ici: https://github.com/Old-Geek/Librairie/blob/master/Librairie/Model/MiniZip.m#L68
Il est déclaré à la ligne 93
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Le plus simple c'est d'écrire toutes les données dans un fichier temporaire texte .xml
et extraire les données avec la classe NSXMLParser
Oula, c'est trop facile ça, le but du jeu est de ne pas accéder au HDD pour si peu (1 à 2Ko maximum).
Je veux juste récupérer le texte brut, j'ai déjà un pseudo parser.
Le problème c'est que là, c'est pas du binaire ni de l'hexa, juste des chars de ce genre: ïÀ\^B
Semble avoir un exemple ici
landcareweb.com/questions/44637/ndkying-yong-cheng-xu-qian-ming-jian-cha
NSData peut être ?
J'en suis surtout à me demander si c'est pas le fichier compressé
«\^R0°%«ÿ\^?Àοïþ\^?£.xÿ\^?«\^R@Ï¿ïþ\^?.2.xÿ\^?\^Tàö\^D\^Aÿ\^?\^A \^[$
\^[$
\^[$0Ï¿ïþ\^?\^Ï\^A@Ï¿ïþ\^? \^[$Ï¿ïþ\^?Tì\^Aпïþ\^?\^Dàö\^D\^D\^Dàö\^D\^AÏ¿ï\^Dпïþ\^?àö\^D\^Aàö\^D\^DÀÏ¿ïþ\^?ëÅ
ÐÏ¿ïþ\^?-Ã\^APпïþ\^?ëÅàö\^D\^BPпïþ\^?ëÅ
¦\^B\^Pпïþ\^?»Ï\^AëÅëÅ
\^BPпïþ\^?ëÅпï\^B
пïþ\^?}Ð\^Aпïþ\^?\^P\^B\^Bpпïþ\^?ëÅ
ëÅëÅ\^A&ëÅ
\^AëÅëÅ
\^Xø\^B\^AëÅëÅ
0ø\^B\^A(ëÅëÅ°Ñ¿ïþ\^?,\^_\^A\^A Ñ¿ïþ\^?àö\^D\^A\^WÜA\^Càö\^D\^AÀ÷\^B\^A('\^NòÀ\^Bü\^Dux\^X«>NPK\^A\^BëÅ
À÷\^B\^AòÀ\^BòÀ\^B
àÑ¿ïþ\^?ÇJ\^A\^AÀ÷\^B\^AÀ÷\^B\^AµO\^F\^PÒ¿ïþ\^?:K\^A\^AÀ÷\^B\^A8pü\^D\^AÀ÷\^B\^A£c\^A@Ò¿ïþ\^?Wc\^A\^Apü\^Dpü\^D\^Apü\^D\^A°ù°Ò¿ïþ\^?]\^A\^A0íŵO\^FëÅ
{@xÐÒ¿ïþ\^?\^HN\^A\^Apü\^D\^Alþ\^?\^AÛy\^F\^A8\^G\^A\^A«Î\^PÓ¿ïþ\^?UL\^A\^AÀ÷\^B\^AÀ÷\^B\^Apü\^D\^Apü\^D\^A»_\^APÓ¿ïþ\^?£c\^A\^APÓ¿ïþ\^?õÝKpü\^D\^AÓ¿ïþ\^?pü\^D\^Apü\^DÐÓ¿ï
regarde dans le fichier https://github.com/nmoinvaz/minizip/blob/master/minizip.c
peut etre que les données sont encryptés ?
if (file_info->flag & MZ_ZIP_FLAG_ENCRYPTED)
Non, c'est pas ça
-l 40 éléphants - tome 1.cbz
Packed Unpacked Ratio Method Attribs Date Time CRC-32 Name
------ -------- ----- ------ ------- ---- ---- ------ ----
672 1114 60% Defl:N 81a40000 05-13-19 07:53 4f5dc22a comicinfo.xml
Si je colle ça en NSdata et que j'écris le fichier ça le fait pas non plus, convertir le data en string me donne toujours un null
Si encore
file_info->uncompressed_size;
ne me donnait pas la bonne taille du fichier je pourrais douter mais c'est même pas le cas.Euh, un peu d'explications là-dessus ? Car ce n'est pas parce que tu as un NSData, qu'en faisant [[NSString alloc] initWithData:theData encoding: NSString8TFStringEncoding] que cela te donnera toujours un string non-nil.
L'exemple simple est Image => JPEGData, transformer ça en String.
mouaip, en tout cas c'est bizarre, j'ouvre l'archive, j'obtiens la taille précise de mon fichier mais dès que je veux l'obtenir ça me dit mz_zip_entry_is_open(handle) != MZ_OK
Je l'aurais !
Si tu "dézippes" manuellement l'archive, le fichier XML est-il lisible ?
J'attaque un wrapper simplifié à coté pour faire ça au propre, ça sera plus simple pour m'y retrouver plus facilement
Mouaip, suis pas du genre à abandonner mais là... j'ai tout fait à la mano avec la version de minizip qui me lit bien mes infos, je prend la dernier version sans changer d'un poil et ça refuse de me lire mon fichier.
J'en conclu que c'est cette @$ de lib qui est complètement bug. Y'a 0 doc, aucune info sur comment utiliser la lib et quand tu prends les fichiers exemple en recopiant bêtement ça refuse toujours d'ouvrir un fichier directement en mémoire.
Sur ce reboot, y'a la dernier mise à jour qui fait perdre juqu'à 40% de performance du CPU qui est arrivé
\o/
---> https://libzip.org propre, claire, très bien documenté, fonctionne à la perfection
minizip = gros caca mou kipu bugué de partout, doc inexistante, code tout tordu et flou, résultat parfois aléatoire... 2 jours de perdu à essayer de comprendre pourquoi ça fonctionnait pas