Cherche code source pour décompression LZH / YM [VB] - VB/VBA/VBS - Programmation
Marsh Posté le 31-01-2003 à 21:40:26
J'ai trouvé cette DLL : UNLHA32.DLL
ici : http://www2.nsknet.or.jp/~micco/dlfile/ULH3186D.EXE sur le site http://www2.nsknet.or.jp/~micco/micindex.html
Mais toute l'aide est en japonais, je n'y comprend rien
Marsh Posté le 31-01-2003 à 22:06:56
Peut-être voir la version 0.96, la doc est en japonais ET english (fichiers se terminant par E). Sur la même page ouèbe.
Je sais pas si le code de la DLL est dispo. J'utilise une DLL 16 bits sous Win3.11, y avait du code VB pour l'utiliser (mais y a quand même des messages/infos résiduelles en VO ds DLL ).
Dans un coin, je dois avoir (il me semble) le source du compresseur LHA (y a de l'ASM japonais dedans). Le prof de math qui l'a inventé aurait dû apprendre l'anglais (voire le français ).
Marsh Posté le 31-01-2003 à 22:36:24
URL un peu générique : http://members.aol.com/DuckGroup/lha_comp.html
Marsh Posté le 31-01-2003 à 22:41:28
Merci ! Je viens de télécharger la version anglaise, je regarde ça...
Sinon, j'ai trouvé une autre DLL : ICE.DLL
ici : http://www.programmersheaven.com/s [...] ileID=2201
Mais je n'arrive toujours pas à décompresser de fichiers, pourtant il y a un peu d'aide, mais pas d'exemple.
Marsh Posté le 01-02-2003 à 00:06:50
Finalement, après avoir chercher en vain pendant plus de 5 heures aujourd'hui (et bien plus avant, j'en ai marre de chercher maintenant), j'ai trouvé une solution toute simple :
- J'ai retrouvé un vieux fichier LHA.EXE datant de 1991 de Haruyasu Yoshizaki fonctionnant en ligne de commande DOS. Il est tout petit (26Ko)
- Je le met dans le répertoire de mon programme Visual Basic
- Pour décompresser un fichier LZH je rentre le code suivant :
Shell "LHA E MONFICHIER.LZH", vbHide
Merci encore pour les infos !
Marsh Posté le 01-02-2003 à 08:54:01
Si noms longs, problème..
Y a une version DOS 32 bits qui est sortie, mais je sais plus où je l'avais trouvée. Mes vieux liens japonais (écrits en anglais, Ouf) ne sont plus valides.
Google m'a donné http://www.uni-ulm.de/~s_dstoll/pv [...] ex_en.html, y a lien pour LHA32.exe (+ une DLL bofbof ).
Marsh Posté le 01-02-2003 à 18:52:59
Je viens de voir ton lien pour la version 32 bits qui m'aurait bien aidé aujourd'hui. J'ai en effet eu des problèmes avec les noms longs, j'ai été obligé de me plonger dans ma doc VB pour pouvoir convertir les noms longs en noms courts (les fonctions Shortname et Shortpath le font).
Malheureusement ça ne fonctionne toujours pas bien :
- Quand j'utilise le code Shell "LHA E MONFICHIER.LZH", vbHide le processus LHA ne se termine pas. Etant donné que la manip est répêtée sur des centaines de fichiers, j'ai le message "mémoire insuffisante qui s'affiche" (normal dans le gestionnaire des tâches j'ai plein de programmes LHA qui tournent). J'ai alors créé un raccourci PIF chargé de fermer automatiquement la fenêtre de commande après execution mais impossible de le lancer...
- LHA m'arrive pas à décompresser certains fichiers, il m'indique qu'il sont corrompus alors qu'ils ne le sont pas. Je m'explique : j'ai besoin de décompresser des fichiers YM ( fichiers de musiques Atari voir http://leonard.oxg.free.fr/ymformat.html ) pour en extraire le nom de l'artiste et le titre de la musique. LHA ne veut pas me les décompresser alors que je sais qu'il sont bel et bien compressé (avec un éditeur hexadécimal, je ne peux pas voir le tag présent au début du fichier en clair). Le fichier n'est pas corrompu non plus vu que je peux le lire avec St-sound et Winamp (avec le pluggin), et les deux logiciels arrivent à extraire le titre et le nom du morceau (donc le tag est bien renseigné).
Là j'avoue que je suis bloqué...
Marsh Posté le 01-02-2003 à 21:50:18
C'est peut-être du presque_LHA_codé, le LZH est peut-être abusif ?
Sinon, dans le lien, il dit "The ST-Sound player only support LZH file with header 0, so don't forget to use the "-h0" flag when packing a YM file you just create !"
Je ne sais pas si ce commutateur ne sert qu'à la compression ou sert aussi à la décompression (lha /? donne la liste des options).
Faudrait essayer "lha e -h0 monfich.lzh" sur un des fichiers récalcitrants pour voir. Je dois avoir derrière les fagots un vieux vieux LHA, mais je pense que le "nouveau" sait traiter les cas antérieurs.
Pour voir, je ne sais pas si PowerArchiver sait de lui même décompresser les LZH ou si faut que LHA soit dispo qq part sur disque dur.
Il semblerait que WinAmp sait lire les YM que s'il a le plug in in_ym.dll .
Marsh Posté le 03-02-2003 à 08:18:22
J'ai déjà essayer le -h0, mais c'est bien ce je pensais, c'est un paramètre pour la compression. J'ai essayé plusieurs versions de LHA sans succès. Je n'ai pas essayé PowerArchiver mais Winrar m'indique que le fichier est un LZH corrompu. Je pense comme toi, que c'est du "presque_LHA_codé". J'ai envoyé un mail à l'auteur de St-Sound, j'attend sa réponse... Pour Winamp effectivement, il faut le plug in pour lire les fichiers YM.
Marsh Posté le 03-02-2003 à 15:12:46
En le renommant RAR au lieu de LZH, ça marche pas mieux avec WinRar ? Je sais plus quel format se repose sur le LZH (oublié). Si c'est une évolution, y a ss dte des "entorses" au format naturel.
Sinon, y en a certains, des fichiers, avec qui la décompression se passe bien ?
Marsh Posté le 04-02-2003 à 19:50:42
Je n'ai pas essayé de renommer les fichiers en RAR car Winrar détecte automatiquement le format du fichier (il m'indique un fichier de type LZH quand j'ouvre directement un fichier .YM compressé).
Je ne comprend pas, certains fichiers passent et d'autres pas, tout en étant du même type. J'ai le problème par exemple avec ces 2 fichiers, ils sont tous les 2 en YM5 et comportent chacun un tag.
Fichier ECHELLE.YM (j'arrive à le décompresser)
http://18051805.free.fr/BBS.ym
Fichier BBS.YM (je n'arrive pas à le décompresser)
http://18051805.free.fr/Echelle.ym
Quand j'essaye de décompresser les fichiers avec LHA.EXE
Informations sur la musique ECHELLE.YM sous St-Sound v5.5
Informations sur la musique BBS.YM sous St-Sound v5.5
Edit : liens pour les captures écran.
Marsh Posté le 05-02-2003 à 00:08:19
PowerArchiver est content avec le second, trouve un fichier CZBBS (07/02/1998 21:06, 98341 octets, taux 69%, 30840 octets) dans le premier mais ne veut pas le décompresser car CRC error.
Je ne sais plus si Stuffit Expander sait lire le LZH.
Demain soir (ce soir plutôt vu l'heure), j'essaie avec mon vieux QuickView Plus sur le 486/Win 3.11 car il fait des fois des prouesses (les TAR que WinZip ne sait pas ouvrir par exemple).
Marsh Posté le 05-02-2003 à 18:19:32
Merci pour tes réponses CARBON_14.
Tiens moi au courant si tu trouve une solution, de mon coté je continue de chercher et j'attend une réponse de l'auteur de St-sound (que je n'ai toujours pas reçu, mais j'espère...)
Marsh Posté le 05-02-2003 à 20:16:37
Essai sous Win3.11 avec Quick View Plus : bon pour l'un, rien à afficher pour l'autre.
LHA t NomArchive sous DOS (t pour test d'intégrité) : "Extra data preceeding the first header".
Vu qu'il y a erreur de CRC, doit y avoir un bit qui ne correspond pas à la norme LZH, mais qui n'est pas lu par les autres softs, genre entête ou info ""inutile"".
Il m'a semblé voir qq part dans les URL une info de header, faudrait que je la retrouve. S'il faut les bricoler un par un, bof...
Marsh Posté le 05-02-2003 à 20:30:19
D'après http://leonard.oxg.free.fr/ymformat.html, on a le header du fichier YM une fois décompressé (j'ai vérifié avec éditeur hexa).
Le pb ici semblerait la fabrication du LZH renommé YM pour BBS. Y a un bit pas bon (il "fonctionne" avec Winamp ?).
Si je trouve header de LZH, je regarde ça. L'un a
xx-lh5-xx au début du fichier (celui pas bon) puis + loin CSBBS sans l'extension YM
l'autre a
a-lh5-A et plus loin ECHELLE.YM
un autre "normal" a
#.-lh5- (le . étant caractère non ASCII) et plus loin le nom du fichier compacté
Ai trouvé sur http://www.onicos.com/staff/iz/formats/lzh.html, y a header LZH type 0, 1 et 2. Reste à s'y plonger.
Ai jeté un coup d'oeil, mais pour l'instant, ça me donne mal au crane .
Ai vu qq part que LHA 2.13(celui que j'ai) pas idéal pour certains nouveaux LZH => ai cherché LHA moderne : le 2.52, mais semble pour DOS japonais . Il ne décompresse pas plus le BBS.lzh, ni LHARC du même auteur je crois. A suivre.
Marsh Posté le 14-02-2003 à 12:40:05
Le fichier BBS.YM est bien lu par Winamp.
J'ai trouvé ça sur le LHA :
http://www.osirusoft.com/joejared/lzhformat.html
http://homepage1.nifty.com/dangan/ [...] Notes.html
...mais ça ne m'avance pas à grand chose, je ne sais toujours pas comment réussir à décompresser le fichier.
Marsh Posté le 14-02-2003 à 14:04:57
J'ai plus le temps de grand chose (écriture de soft pour le labo qui piétine (l'écriture, pas le soft )). L'entête semble "bizarre" (le 78H au tout début semble un peu grand, mais bon).
Ai pas encore eu le temps (et y connait pas grand chose) de voir les autres bons fichiers et comparer entête décrite des LZH voir ce qui cloche. Faut s'y prendre posément, pas en coup de vent. Ce WE, repos car .
Marsh Posté le 31-01-2003 à 20:41:41
Je cherche un code source gratuit pour Visual Basic 6 permettant de décompresser des fichiers LZH (fichiers YM compressés en LZH).
Message édité par allanh le 01-02-2003 à 19:02:20