LIRE/EXTRAIRE UN ZIP 100% VB

GRAZNOK Messages postés 43 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 21 septembre 2006 - 16 sept. 2006 à 19:33
cs_Xiaomao Messages postés 5 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 7 juillet 2007 - 7 juil. 2007 à 09:28
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/39592-lire-extraire-un-zip-100-vb

cs_Xiaomao Messages postés 5 Date d'inscription mardi 20 juin 2006 Statut Membre Dernière intervention 7 juillet 2007
7 juil. 2007 à 09:28
Très interressant. Si j'ai bien compris, c'est l'algorithme complet du format zip.

Je vais lire attentivement ce code pour voir si je peux l'adapter dans un autre langage qui tournerait sous Linux (en Java par exemple). En effet, les dezippeurs Linux gèrent mal les accents dans les noms de fichiers (la fameuse transcodification ci dessus).

Donc, déjà, de base, je te mets un gros 10/10.

Je vous tiens au courant de mes recherches.

Merci beaucoup.

Xiaomao.
FREMYCOMPANY Messages postés 276 Date d'inscription jeudi 12 janvier 2006 Statut Membre Dernière intervention 22 décembre 2008
30 sept. 2006 à 12:11
Et ca ???

Public Structure MyType
Private sT(20) as Byte
End Structure
GRAZNOK Messages postés 43 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 21 septembre 2006
21 sept. 2006 à 09:20
En effet je l'avais déjà vu :)
Mais voilà, sous .NET2 ça passe pas trop. Alors je cherche...

De toutes façons, merci.
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
21 sept. 2006 à 08:11
GRAZNOK Messages postés 43 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 21 septembre 2006
21 sept. 2006 à 06:48
Ben quoi ?
En fait j'ai trouvé des infos sur www.wotsit.org. Je vais essayer d'en tirer une source. Mais je demandais, au cas où.
En même temps je pourrais utiliser unrar.dll. Faut voir...
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
20 sept. 2006 à 23:02
... pis un mars
GRAZNOK Messages postés 43 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 21 septembre 2006
20 sept. 2006 à 21:02
Aurais-tu une source pour lire les RAR et les CAB ?
Ou bien si quelqu'un a une source exploitable en VB ?
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
20 sept. 2006 à 11:37
Ok enfait je connaissais pas le FilePutObject.

Il doit bien y avoir un moyen de le remplacer, du moins j'imagine...

Enfin bref, merci pour ce cours.

Cependant je reste convaincu que cet inconvéniant et minim par rapport à tout les avantages de .Net2

Mais c'est un avis personnel qui n'engage que moi :-D
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
19 sept. 2006 à 12:20
Sechaud> car je parlais du moteur d'extration et pas de l'interface biensur ! Je te l'accorde l'interface est minimaliste et puis pour dire la verité je suis pas tres fort dans ce domaine :p

@+
Sechaud Messages postés 288 Date d'inscription jeudi 28 octobre 2004 Statut Membre Dernière intervention 3 janvier 2017
19 sept. 2006 à 12:07
Bonjour EBArtSoft, comme toujours, ils sont super tes programmes.
Tu dis que toute amélioration est la bienvenue.
Pourquoi ne pas mettre un bouton qui permettrait d'extraire tous les fichiers d'un coup, plutôt que de s'en tenir à une mono extraction?
Un bouton pour fixer un lieu d'extraction et une boucle en utilisant le code du ListDoubleClick iraient très bien.
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 sept. 2006 à 16:38
"Merci Renfield de me prendre pour un idiot... :-)"
je ne te prend pas pour un idiot... je n'ai fait que dire en (très) condensé l'idée sous-jacente, à savoir qu'un type est "un ensemble de données contigües en mémoire" (comme les tableaux).
une classe, non...

c'est toute la subtilité entre les variables de type 'valeur' et de type 'référence'...
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
18 sept. 2006 à 15:40
Scalpweb> Ok voila un exemple :

Private Class MONTYPE
Public Membre1(20) As Byte
End Class

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim t As New MONTYPE
Dim i As Integer
Dim f As Integer

For i = 0 To 20
t.Membre1(i) = i
Next

f = FreeFile()
FileOpen(f, "c:\test.txt", OpenMode.Binary)
'FilePut(f, i) 'Pas de probleme !
FilePutObject(f, t) 'L'E/S de fichier de type 'MONTYPE' n'est pas valide.
FileClose(f)

End Sub

Pourquoi mon fichier "c:test.txt" ne contient pas les données de la classe ? et bien par ce que cela n'est pas prevu pour !

@+
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
18 sept. 2006 à 15:31
Renfield> Ok version API ajoutée !

@+
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
18 sept. 2006 à 15:29
Merci Renfield de me prendre pour un idiot... :-)

EBArtSoft, je ne comprends pas vraiment... Mais si tu le dis...
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
18 sept. 2006 à 15:23
Scalpweb> certe à vue d'oeil on dirait la meme chose mais il te sera impossible de l'enregistrer dans un fichier en l'etat et je ne parle pas d'une eventuelle lecture/ecriture en memoire ! C'est la que le bas blesse !

@+
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 sept. 2006 à 15:12
une classe n'est pas un Type ^^
Scalpweb Messages postés 1467 Date d'inscription samedi 13 mars 2004 Statut Membre Dernière intervention 5 mai 2010 4
18 sept. 2006 à 14:10
ET bah EBArt, qu'est-ce que tu nous raconte ??
Une vingtaine de ligne ?? Ah...
Moi perso j'aurais fais ça comme ça :

Public Class MONTYPE
Public Membre1(20) as byte
End Class

Puis ensuite :

dim Var as New MONTYPE

Ce qui reviens au même au niveau du nombre de ligne.
Enfin, il me semble...

@Plaouche
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
18 sept. 2006 à 09:33
Conversion ANSI=>ASCII postée en Snippet sur www.codyx.org, si ca en interesse certains.

on aurait pu utiliser les APIs 'CharToOem' & Co... de mémoire, c'est ce que j'avais utilisé, il y a fort longtemps dans un de mes projets
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
17 sept. 2006 à 22:29
Le principal probleme avec .NET c'est qu'il est impossible de créer une structure avec un membre de type tableau a dimention fixe :

Type MONTYPE
Membre1(20) as byte
End Type

Pour ecrire ça il faut pas moins d'une vingtaine de ligne en .NET ! hors quand on doit travailler avec la memoire ou lire des fichiers binaire on y passe forcement. Tant que cela ne sera pas corigé je ne ferais pas de .NET mon language principal !

Le managé n'a pas que du bon loin de la ! et comme tout language de prog il faut savoir l'utilisé au bon moment ;p

@+
GRAZNOK Messages postés 43 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 21 septembre 2006
17 sept. 2006 à 21:53
EBArtSoft > t'es pas passé au .NET encore ? J'ai vu toutes tes sources et franchement chapeau bas. Moi quand j'ai vu .NET à l'horizon, j'ai bondit dessus... et qu'est-ce qu'on y est mieux :)
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
17 sept. 2006 à 20:23
Jack> a ouai quand meme :p
bah merci d'avoir flatté notre ego et merci pour l'article :p

@+
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 sept. 2006 à 17:59
P*@!£*n ! (pour être poli)
Ca fait des lustres que j'essaye de trouver une concordance entre ces jeux de caractères, persuadé qu'il fallait passer par le paramétrage de l'OS.
Et vlan, EBartSoft résoud ça en 32 minutes. Ca me dégoute !

EBartSoft : Tu es mon héros (avec RenField)

(la vache, je suis sur le cul. J'étais parti dans les méandres des structures des jeux de caractères : une horreur. D'ailleurs, à ce sujet, je vous conseille la lecture de ce superbe article de l'historique (et traduit en français, pour une fois) : http://french.joelonsoftware.com/Articles/Unicode.html )
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
17 sept. 2006 à 14:31
Voila c'est corrigé pour les accents de plus le code de lecture et extraction des zip n'utilie plus une seule API !

@+
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
17 sept. 2006 à 13:57
ce n'est rien juste un petit probleme de conversion ASCII->ANSI je m'en occupe

@+
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
17 sept. 2006 à 02:17
Waouh, sympa ça !
Mais je vois que tu as le même problème que moi (avec ZLib) pour les caractères accentués dans les noms de répertoire :
- Moi : En utilisant ZLib pour zipper et unzipper, je n'ai pas de problème. Par contre, si j'ouvre un de ces zip avec WinZip et qu'il contient un nom de fichier ou de répertoire avec accent, ça bugue.
- Toi, c'est l'inverse : Si on créé un zip avec Winzip (qui contient un répertoire avec accent), ta lecture est buguée.
Va falloir qu'on s'associe pour éradiquer ce bug !
Je vais y consacrer cette humide nuit.
GRAZNOK Messages postés 43 Date d'inscription lundi 19 mai 2003 Statut Membre Dernière intervention 21 septembre 2006
16 sept. 2006 à 19:33
J'avais déjà testé ton ancien code et ça marche du tonnerre.
Y aurait-il la possibilité de faire une source .NET2 (juste pour lire un ZIP, pas l'extraire) ?