Merci bien kapoue3 pour tes réponses. Alors, dans le désordre des réponses :
concernant yacc, je voulais plutot dire que il est plus rapide d'ouvrir un term, faire un "cd outuveux", et d'avoir tous ses fichiers à dispo pour lancer cisoplus, plutot que d'avoir un outil clickodrome ! maintenant, c'est juste une question de goût et de préférences.
De plus, je suis pratiquement tout le temps sous linux, et yacc marche (se lance, j'ai pas essayé sous linux la compression) avec wine, mais a tout de même quelques soucis (perso il m'est impossible de le fermer, car j'ai le message d'erreur "Indice de liste hors limites (-1)" lors d'une tentative de fermeture, et impossible de passer outre.
De plus, il y a une petite coquille sur ton site (tu avais déjà fait la même, d'après ce que j'ai vu sur ce forum lors d'une précédente release ) : on est en 2008 !!! même si c'est dur pour toi de l'admettre et de l'accepter !!! la version 0.403 devrait être donc du 1er janvier 2008 et non pas 2007, sachant que ta précédente release était de Décembre 2007! Voilà, perso je m'en fous, mais c'est toujours mieux de corriger pour d'autres...
Concernant tes réponses j'ai encore quelques interrogations (je t'assure, c'est pas à cause de tes très bonnes réponses, c'est seulement moi qui suis dur de l'oreille !!!) :
si je comprend bien, chaque fichier de l'iso a son propre block ?
Donc, si je comprend bien, dans le index[n], on a le bit de poid le plus fort à 0 si la donnée est compressée, à 1 si elle ne l'est pas. Je peux donc retrouver un secteur CSO complétement grâce à cela.
Maintenant. tu as dit que un secteur (ou un block) CSO, c'est pas un fichier, c'est juste un block.
Tu as dit tout à l'heure (plus haut) que :
si je comprend bien, là, tu parles du fichier CSO.
Donc, un index de secteur CSO, c'est l'index d'un bloc ISO (compressé ou non).
Maintenant, je pense qu'il me manque la compréhension d'un format iso pour bien comprendre. Car notre p'tite psp ne décompresse que ce dont elle a besoin, ce qui m'amène donc à penser qu'elle fait de l'extraction facile des fichiers dont elle a besoin, d'où des subtilités pour avoir les noms des fichiers !
Donc, si je résume encore un peu, pour afficher la liste des fichiers du cso, je dois prendre chaque index de la table d'index pour récupérer un secteur du CSO, puis je décompresse (ou pas) le secteur de taille expliquée plus haut pour récupérer un block du fichier ISO, et là, je fait une lecture correcte de se bloc via une lib de lecture de bloc iso pour récupérer quelque part j'imagine le nom du fichier ??? j'y suis presque, ou je suis complétement à louest ? Dans la même optique, si j'avais un fichier CSO avec aucun bloc compressé, j'aurai donc taille CSO=tailleISO + nbBlockIso*2octets (l'index) + header du CSO ?
enfin, dernière question (j'suis désolé, j'suis lourd)
pourquoi 2k ? pour moi, une fois que je suis à file_pos_sector[n] = (index[n]&0x7fffffff), alors là, dans le cas d'une non-compression du block je lis directement file_size_sector[n] et j'ai directement mon block. non ?
Enfin, je comprend mieux pourquoi le format CSO ne peux pas faire des fichiers de plus de 2Go... en effet, on a finalement pour une valeur de l'index seulement 2^31 valeur possible, soit 2 147 483 648. Or ca, ca fait en Go exactement 2Go.
En fait, pour finir, aurais-tu des liens sur le format iso, ou une explication suffisamment facile pour que j'ai pas besoin de regarder une doc ?
En tout cas, merci bcp de ton aide, elle m'est précieuse ! D'autant plus que dans la langue de molière, en plus !
merci encore,