Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Gestion d'archives

2 views
Skip to first unread message

val...@gmail.com

unread,
Jul 4, 2006, 5:54:45 PM7/4/06
to
Bonjour,

je programme actuellement une application pour la quelle j'aurais
besoin de sauvegarder plusieurs fichiers produits par cette application
(fichiers XML, TXT...) dans une archive. L'objectif c'est ensuite de
faire de ce fichier une extension particuliére de ce programme.
Reconnue qui aprés serrait ouvert par ce programme. Un peu à la
OpenOffice.

La question est donc comment faire?

J'ai vu qu'il existé un package pour manipuler du zip. Mais si mes
souvenirs sont correcte zip n'est pas un format libre (or l'application
serras publiée sous GPL ce qui risque de poser un probléme). Enfin ou
decompresser le zip pour acceder aux fichiers?

J'aimerais enfaite une méthode qui me permette d'ouvrir les fichiers
qui sont à l'interieur de l'archive. Pouvoir donc utiliser une
commande du genre : set id [open $n_fic { WRONLY TRUNC }] mais avec les
fichiers à l'interieur de l'archive. Est-ce possible?

Merci d'avance.

stephan...@yahoo.fr

unread,
Jul 5, 2006, 3:14:10 AM7/5/06
to

val...@gmail.com a écrit :

> Bonjour,
>
> je programme actuellement une application pour la quelle j'aurais
> besoin de sauvegarder plusieurs fichiers produits par cette application
> (fichiers XML, TXT...) dans une archive. L'objectif c'est ensuite de

Bonjour,

Je pense que la solution à ton problème, c'est Metakit
et le système de fichiers virtuel vfs.
(voir http://www.equi4.com/)

Un vfs Metakit permet de stocker des fichiers dans une
sorte d'archive, tu peux lire, écrire, etc... des fichiers dedans.

Je suis désolé, je n'ai aucun exemple de code pour ça,
mais les starkits sont un bon exemple d'application, et ça fonctionne.

Quand à l'association de fichiers, il y a sûrement
des experts Windows qui pourront te conseiller une extension
qui fait ça. (registry?)

Cordialement,

Stéphane

Kroc

unread,
Jul 5, 2006, 8:11:47 AM7/5/06
to
val...@gmail.com a écrit :

> Bonjour,
>
> je programme actuellement une application pour la quelle j'aurais
> besoin de sauvegarder plusieurs fichiers produits par cette application
> (fichiers XML, TXT...) dans une archive. L'objectif c'est ensuite de
> faire de ce fichier une extension particuliére de ce programme.
> Reconnue qui aprés serrait ouvert par ce programme. Un peu à la
> OpenOffice.
>
> La question est donc comment faire?

La solution évidente en Tcl est d'utiliser Metakit et plus
particulièrement Mk4tcl : http://www.equi4.com/metakit/tcl.html

> J'ai vu qu'il existé un package pour manipuler du zip. Mais si mes
> souvenirs sont correcte zip n'est pas un format libre (or l'application
> serras publiée sous GPL ce qui risque de poser un probléme). Enfin ou
> decompresser le zip pour acceder aux fichiers?

Il ne faut pas confondre le format de fichier Zip écrit par Phil Katz
pour PKZIP avec les algorithmes de (dé)compression Zip. Le format de
fichier est propriétaire, certains algorithmes également, mais il
existe des algorithmes libres et rien n'interdit de créer ou modifier
des fichiers ZIP avec.

Zlib (http://www.zlib.net) est un exemple d'implémentation libre et
Open Source.

Quant à la GPL, elle est, selon moi, plus virale que libre : la
licence BSD (ou NOL) c'est mieux ;-)

--
David Zolli - Kroc

val...@gmail.com

unread,
Jul 6, 2006, 5:50:04 AM7/6/06
to
Merci pour ces conseils. Pour la licence on va attendre que le logiciel
soit a peu prés diffusable.

En attendant je vais essayer de faire mon truc avec le metakit, mais
cela à l'air compliqué :-(

Je vous raconterais tout cela !!

Kroc

unread,
Jul 6, 2006, 12:38:16 PM7/6/06
to
val...@gmail.com a écrit :

> Merci pour ces conseils. Pour la licence on va attendre que le logiciel
> soit a peu prés diffusable.
>
> En attendant je vais essayer de faire mon truc avec le metakit, mais
> cela à l'air compliqué :-(

Mais non, c'est vraiment tout simple en fait :

# Création d'un fichier .kit vide :
set vide [open truc.kit w] ; close $vide

# Montage avec mk4vfs :
package require mk4vfs
set canal [vfs::mk4::Mount truc.kit truc.kit]

# Copie de fichier dans le .kit :
file copy -force ~/Pictures/kroc.png truc.kit
set fout [open truc.kit/readme.txt w]
puts $fout "Nothing interesting to write."
close $fout

# Contrôle du contenu :
glob -nocomplain truc.kit/*

# Démontage :
vfs::mk4::Unmount $canal truc.kit

Tu peux également contrôler le contenu avec "sdx unwrap truc.kit".

Nota Bene :

Le package mk4fs en inclue dans tous les tclkits et pour les tclsh/wish
classiques voir tclVFS : http://wfr.tcl.tk/TclVFS

Kroc

unread,
Jul 6, 2006, 1:00:22 PM7/6/06
to
J'ai pris arbitrairement .kit comme extension de fichier mais en fait
on peut prendre n'importe quoi, ça marche quand même. Un mec vicieux
choisira ".zip" par exemple, histoire de rendre fou les gens qui
devront reprendre le code derrière lui (et il pensera à ne pas
commenter son code, tant qu'il y est). ;-)

val...@gmail.com

unread,
Jul 7, 2006, 11:11:53 AM7/7/06
to
Ok, ca n'a pas l'air compliqué. J'ai donc essayé ! C'est ce que je
recherchais. Merci beaucoup.

Petite précision sur l'extension. J'ai crée une extension (enfin en
espérant qu'elle n'existe pas dans un autre programme). Cela permet de
definir l'ouverture de mon programme lorsqu'on double-clique sur un tel
fichier (sous windows du moins).

Merci pour votre grande réactivité !

0 new messages