Bienvenue sur Forum Puppy Linux - Toutou Linux - Astuces - Aides !
Lorsque vous n'êtes pas connectés vous pouvez visiter la totalité du forum mais avec certaines restrictions : cf le règlement pour les visiteurs non connectés. Vous êtes chaleureusement conviés à vous inscrire afin de bénéficier de toutes les fonctionnalités du forum et de participer aux échanges.
Dernier message par Polo l’asticot -
Ola Rantanplan ! Ola Sticot ! Je n'avais même pas pensé qu'en ne mettant pas de domaine, on obtenait un résultat ! Je teste toujours à fond, c'est ma nature. Du coup, je me disais que j'allais faire comme anticapitalista, je dis que ce n'est pas un bogue : c'est une fonctionnalité. Cela va se voir… Bon, je mets ton test alors. Il est très bien. Super ! Je n'ai pas essayé pour une interface en GTKDialog. Je teste des fonctions de la nouvelle antiX. Cela ne marche pas trop et je ne comprends pas ce que je dois faire. C'est dommage qu'il n'y ait pas de documentation, même en anglais. Cela aiderait. Je peux faire quelque chose ? C'est gentil, mais c'est en 64 bits. Et installé en dur. Ah, alors je n'y touche pas.
Dernier message par Rantanplan -
Camarade, camarade comme disait une égérie nommée Arlette,
Plus sérieusement,
Marre des GAFAM infames et de l'IA très artificielle (qui va supprimer près de 5 millions d'emplois en France d'ici 5 ans dit-on), essayez MASTODON et faites un petit tour ici : https://pouet.chapril.org/explore C'est sérieux, mais on se paye aussi de belles tranches de rigolade et en ces temps sombres, ça fait un bien fou.
Et puis, pourquoi ne pas ouvrir un compte : c'est vous qui voyez.
Vous pouvez aussi commencer par le début : https://joinmastodon.org/fr/servers afin de choisir votre fournisseur et faire connaissance avec le service.
Vive la démocratie ! Vive la liberté ! Vive l'intelligence humaine ! Vive le français (la langue) !
Dernier message par Rantanplan -
EasyOS est en 64 bits. Symphytum est régulièrement cité sur le forum.puppylinux.com Jamais testé. Je regarderai si je trouve un paquet compatible avec ma distribution fétiche.
Par contre, je viens de tester les modes .excell, .www et box, c'est bluffant. Pour les deux premiers, ça ouvre Gnumeric avec l'extraction demandée, et le navigateur par défaut avec un fichier .html. Seul hic, les lettres accentuées ne sont pas gérées pour le fichier html, mais le sont avec le tableur.
Les fichiers .zip semblent supportés. Testé avec sqlite-src-3530200.zip : ok.
Dernier message par Polo l’asticot -
Rien à voir. Mais un peu tout de même. Dans la dernière version de EasyOS 7.4, Barry Kauler a ajouté l'application Symphytum pour gérer à la souris les bases de données SQLite. Cela semble mignon et pas trop lourd. Non testé. (Comme j'oublie tout, je ne peux pas enregistrer de données.)
Dernier message par Rantanplan -
Bonjour les cynophiles,
Ça bouge chez SliTaz, la mini-distribution. Le site a fait peau neuve : c'est plus aéré. Une version 64 bits native est sur l'établi des développeurs. Le forum se prépare à devenir un flarum (flarum.slitaz.org). Et d'autres nouveautés à découvrir en lisant les actualités du site slitaz.org
Pas de clou-dans-la-chaussure prévu avant longtemps, ni Shann, ni Pankso n'y sont favorables. Youpiiiiiiiiiiiii.
Dernier message par Polo l’asticot - Compléments d'informations :
Je viens d'installer cette distribution sur le disque dur d'un Probook 4525s avec AMD Turion II dual core et 2 Go de mémoire (même version 32 bits). C'est du matériel de récupération qui doit être utilisé dans une école primaire.
La version Full installe de nombreux programmes, mais donne un bureau utilisable directement. Avec Core, on doit installer les pilotes graphiques, X.org, un gestionnaire de connexion… La nouveauté de cette version est la présence de cinq systèmes d'initialisation différents de systemd, utilisables indifféremment.
Comme je ne suis pas un fanatique de l'initialisation, je me contente d'utiliser runit, qui est très rapide au démarrage et à l'arrêt (mais qui ne gère pas les dépendances). Donc pour un poste simple, après installation, j'ai utilisé un script Bash du forum appelé full2base pour enlever rapidement des programmes. J'ai aussi enlevé les inits S6, 66, dinit, trois bureaux, les utilitaires de cryptage du disque dur, le bluetooth, les utilitaires pour utiliser un modem. Avec juste LibreOffice Writer, Firefox et Palemoon, je suis arrivé à 9 Go d'encombrement sur le disque dur. Le temps de démarrage, après avoir fait le ménage dans les services, est inférieur à trente secondes. Pour l'arrêt, c'est moins de dix secondes. L'occupation mémoire est d'environ 180 Mo à la connexion. À comparer au 600 Mo d'occupation des distributions légères actuelles. Les performances sont bien meilleures que sur mon matériel, plus jeune de cinq ans.
Quelques remarques pour ceux qui ne connaissent pas la distribution :
La documentation n'est pas le point fort des développeurs. Il y a énormément d'utilitaires en ligne de commande, non référencés. Si on cherche sur Internet un programme en ligne de commande pour accomplir une tâche sous Linux, neuf fois sur dix, il est déjà installé dans la distribution.
La communication n'est pas non plus un point essentiel. Les menus ont été revus sur cette version pour masquer une cinquantaine de programmes : ceux-ci ne peuvent plus être lancés qu'en passant par le centre de contrôle. Un utilitaire a été ajouté pour retrouver les anciens menus. Ce n'est annoncé nulle part. On a le « plaisir de la découverte ». Des fonctions sont ajoutées, non exploitées. J'ai découvert binfmt, qui permet d'utiliser les capacités du noyau à lancer un programme par un fichier exécutable. La configuration n'est pas faite. Pourquoi est-il là ? Pas de déclaration, pas de discussion sur le forum. Pour une prochaine version ? Les décisions des développeurs sont assez mystérieuses.
Le forum offre une aide précieuse aux anglophones. Si votre problème est intéressant, trois ou quatre personnes vont vous faire des propositions pour le résoudre et ne vous lâcheront pas jusqu'à la résolution. C'est assez sympathique. Par contre, si c'est trop spécifique ou si vous ne comprenez pas l'anglais…
Donc pour du matériel ancien, c'est une distribution à prendre en compte. Pour du matériel récent, si on n'aime pas les fioritures et le bling-bling, la puissance entière de la machine ira dans le programme utilisé. Si on aime bien les surprises, cela peut aussi être une occupation de trouver ce qu'il y a de caché dans la distribution ou de trouver comment cela fonctionne.
Dernier message par Rantanplan -
Bonjour toutes et tous et chacune et chacun (té, ça en fait du monde),
Ma version de SQLite date un peu, mais elle est extrêment légère (53 ko). En même temps, en matière de fonctionnalités, les limites sont vite atteintes.
Ni une, ni deux, allons sur le site de SQLite.org (sqlite.org). Là, téléchargeons les sources de la dernière version (3.53.2 à l'heure de la rédaction de ce billet). Le .zip fait 14 Mo. Décompactons-le et lisons le README.md. La méthode de compilation semble simple : c'est rassurant. Partons donc à l'aventure.
Je commence par installer le devx de Toutou SlaXen 6.0. Pour ceux qui utilisent Triton-10 en 64 bits, il faut installer le devx de Trixie, par exemple. Pour ceux qui utilisent Focal Fossa, ben, c'est le devx de Focal Fossa. Etc. Puis, on fait comme ils disent :
création d'un sous-répertoire dans le répertoire sqlite-src-3530200 ;
on entre dans le répertoire créé à la ligne ci-dessus ;
on tape joyeusement, mais énergiquement dans son terminal :
on attend encore que le café ou le thé ou le chocolat ou la tisane refroidisse.
Lorsque c'est terminé, on liste le répertoire et on doit trouver un beau sqlite3 tout neuf, tout gros, tout dodu, bien formé et en pleine santé. Chez moi, le binaire dépasse les 5 Mo comparés au 53 Ko, ça laisse rêveur. Mais, ça en vaut le coup.
# sqlite3 --help Usage: sqlite3 [OPTIONS] [FILENAME [SQL...]] FILENAME is the name of an SQLite database. A new database is created if the file does not previously exist. Defaults to :memory:. OPTIONS include: -- treat no subsequent arguments as options -A ARGS... run ".archive ARGS" and exit -append append the database to the end of the file -ascii set output mode to 'ascii' -bail stop after hitting an error -batch force batch I/O -box set output mode to 'box' -cmd COMMAND run "COMMAND" before reading stdin -column set output mode to 'column' -csv set output mode to 'csv' -deserialize open the database using sqlite3_deserialize() -echo print inputs before execution -escape T ctrl-char escape; T is one of: symbol, ascii, off -init FILENAME read/process named file -[no]header turn headers on or off -help show this message -html set output mode to HTML -ifexists only open if database already exists -interactive force interactive I/O -json set output mode to 'json' -line set output mode to 'line' -list set output mode to 'list' -lookaside SIZE N use N entries of SZ bytes for lookaside memory -markdown set output mode to 'markdown' -maxsize N maximum size for a --deserialize database -memtrace trace all memory allocations and deallocations -mmap N default mmap size set to N -newline SEP set output row separator. Default: '\n' -nofollow refuse to open symbolic links to database files -noinit Do not read the ~/.sqliterc file at startup -nonce STRING set the safe-mode escape nonce -no-rowid-in-view Disable rowid-in-view using sqlite3_config() -nullvalue TEXT set text string for NULL values. Default '' -pagecache SIZE N use N slots of SZ bytes each for page cache memory -pcachetrace trace all page cache operations -quote set output mode to 'quote' -readonly open the database read-only -safe enable safe-mode -screenwidth N use N as the default screenwidth -separator SEP set output column separator. Default: '|' -stats print memory stats before each finalize -table set output mode to 'table' -tabs set output mode to 'tabs' -unsafe-testing allow unsafe commands and modes for testing -version show SQLite version -vfs NAME use NAME as the default VFS -vfstrace enable tracing of all VFS calls -zip open the file as a ZIP Archive
C'est saisissant.
Voyons ce que contient l'aide dans un session SQLite3. Pour ça, on tape :
# sqlite3 SQLite version 3.53.2 2026-06-03 19:12:13 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .help .archive ... Manage SQL archives .auth ON|OFF Show authorizer callbacks .backup ?DB? FILE Backup DB (default "main") to FILE .bail on|off Stop after hitting an error. Default OFF .cd DIRECTORY Change the working directory to DIRECTORY .changes on|off Show number of rows changed by SQL .check OPTIONS ... Verify the results of a .testcase .clone NEWDB Clone data into NEWDB from the existing database .connection [close] [#] Open or close an auxiliary database connection .crlf ?on|off? Whether or not to use \r\n line endings .databases List names and files of attached databases .dbconfig ?op? ?val? List or change sqlite3_db_config() options .dbinfo ?DB? Show status information about the database .dbtotxt Hex dump of the database file .dump ?OBJECTS? Render database content as SQL .echo on|off Turn command echo on or off .eqp on|off|full|... Enable or disable automatic EXPLAIN QUERY PLAN .excel Display the output of next command in spreadsheet .exit ?CODE? Exit this program with return-code CODE .expert EXPERIMENTAL. Suggest indexes for queries .explain ?on|off|auto? Change the EXPLAIN formatting mode. Default: auto .filectrl CMD ... Run various sqlite3_file_control() operations .fullschema ?--indent? Show schema and the content of sqlite_stat tables .headers on|off Turn display of headers on or off .help ?-all? ?PATTERN? Show help text for PATTERN .import FILE TABLE Import data from FILE into TABLE .imposter INDEX TABLE Create imposter table TABLE on index INDEX .indexes ?PATTERN? Show names of indexes matching PATTERN .intck ?STEPS_PER_UNLOCK? Run an incremental integrity check on the db .limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT .lint OPTIONS Report potential schema issues. .load FILE ?ENTRY? Load an extension library .log FILE|on|off Turn logging on or off. FILE can be stderr/stdout .mode ?MODE? ?OPTIONS? Set output mode .nonce STRING Suspend safe mode for one command if nonce matches .nullvalue STRING Use STRING in place of NULL values .once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE .open ?OPTIONS? ?FILE? Close existing database and reopen FILE .output ?FILE? Send output to FILE or stdout if FILE is omitted .parameter CMD ... Manage SQL parameter bindings .print STRING... Print literal STRING .progress N Invoke progress handler after every N opcodes .prompt MAIN CONTINUE Replace the standard prompts .quit Stop interpreting input stream, exit if primary. .read FILE Read input from FILE or command output .recover Recover as much data as possible from corrupt db. .restore ?DB? FILE Restore content of DB (default "main") from FILE .save ?OPTIONS? FILE Write database to FILE (an alias for .backup ...) .scanstats on|off|est Turn sqlite3_stmt_scanstatus() metrics on or off .schema ?PATTERN? Show the CREATE statements matching PATTERN .sha3sum ... Compute a SHA3 hash of database content .shell CMD ARGS... Run CMD ARGS... in a system shell .stats ?ARG? Show stats or turn stats on or off .system CMD ARGS... Run CMD ARGS... in a system shell .tables ?TABLE? List names of tables matching LIKE pattern TABLE .testcase NAME Begin a test case. .timeout MS Try opening locked tables for MS milliseconds .timer on|off|once Turn SQL timer on or off. .trace ?OPTIONS? Output each SQL statement as it is run .version Show source, library and compiler versions .vfsinfo ?AUX? Information about the top-level VFS .vfslist List all available VFSes .vfsname ?AUX? Print the name of the VFS stack .www Display output of the next command in web browser sqlite>
Il ne vous reste plus qu'à bien vous amuser !
J'allais oublier : en pièce jointe la compilation pour Toutou SlaXen (32 bits). Essayez-le si vous avez une distro 32 bits, peut-être cela fonctionnera-t-il. Peut-être aurez-vous besoin de créer quelques liens symboliques pour les librairies.
À la prochaine les p'tits loups.
[EDIT DU MÊME JOUR] Ajout d'un .pet créé à partir d'un paquet de SliTaz. Dans leur recette, je vois que readline est désactivé, sauf erreur de ma part. Ci-joint le .pet qui à l'installation pèse un peu plus d'1 Mo. Il s'agit de la version 3.39.2. Qu'on se le dise !
un membre du forum qui connaît mon inclinaison pour les base de données (ou BDD) signalait à ma curiosité un article en pas français, et je l'en remercie encore une fois ici. Ce membre me taquinait, car je ne l'avais pas traduit. C'est chose faite grâce à un traducteur un ligne dont je tairais le nom (non, ce n'est pas deepl.com).
SQLite est un logiciel de base de données incroyablement portable, puissant et léger qui fonctionne partout, des serveurs aux smartphones. Ce qui rend SQLite si populaire, c'est qu'il fonctionne avec des fichiers de base de données autonomes qui peuvent être stockés ou transférés n'importe où. De nombreuses technologies de base de données utilisent plusieurs fichiers et nécessitent la mise en place de services réseau pour permettre aux clients d'accéder aux bases de données à distance. Contrairement à cette approche traditionnelle, une base de données SQLite est stockée dans un seul fichier qui peut exister n'importe où et être accessible sans démon dédié. Le projet SQLite fournit des bibliothèques et des outils en ligne de commande pour travailler avec ces fichiers de base de données, ce qui facilite l'accès et le partage de la base de données sans mettre en place d'infrastructure supplémentaire. Cela rend SQLite idéal pour une utilisation dans les applications de bureau, les applications téléphoniques et les petits sites web. Il y a de fortes chances que le navigateur web que vous utilisez pour lire cet article utilise des bibliothèques SQLite et une base de données SQLite.
Le site web de SQLite explique ensuite son logiciel comme suit :
SQLite est une bibliothèque en langage C qui implémente un moteur de base de données SQL petit, rapide, autonome, très fiable et complet. SQLite est le moteur de base de données le plus utilisé dans le monde. SQLite est intégré dans tous les téléphones mobiles et la plupart des ordinateurs, et est inclus dans d'innombrables autres applications que les gens utilisent tous les jours.
Aujourd'hui, je veux parler d'une fonctionnalité de SQLite qui est moins connue, mais étonnamment flexible et pratique dans certaines situations. Plus précisément, je veux parler de la façon dont l'outil en ligne de commande de SQLite peut fonctionner, non seulement avec des fichiers de base de données, mais aussi avec des fichiers ZIP.
Habituellement, lorsque nous travaillons avec des archives ZIP, c'est soit via un simple outil en ligne de commande avec une syntaxe cryptique qui crée et extrait les fichiers ZIP, soit via une application de bureau dédiée à cette tâche. SQLite offre une troisième option : un outil en ligne de commande qui peut utiliser des instructions SQL pour créer des archives, afficher des informations sur les archives et extraire des fichiers.
Je veux partager quelques exemples de SQLite en action, en travaillant avec une archive ZIP simple pour montrer à quel point SQLite est agréablement flexible. De plus, je trouve que l'utilisation des commandes de base de données SQL pour gérer un fichier ZIP est agréablement étrange et que ce genre de chose est tout simplement amusant.
Tout d'abord, créons une archive ZIP super simple à l'ancienne, via la ligne de commande. Je commence par créer quatre fichiers texte : abc, def, xyz et mnop :
Maintenant que nous avons quatre fichiers texte, chacun avec une ligne de texte, nous pouvons créer notre archive ZIP et y stocker les trois premiers fichiers texte. Cela se fait avec la commande zip, comme son nom l'indique :
Nous pouvons confirmer que l'archive a été créée avec succès en listant son contenu dans le terminal avec le programme unzip :
$ unzip -l myarchive.zip Archive: myarchive.zip Length Date Time Name --------- ---------- ----- ---- 9 2025-08-12 15:21 abc 9 2025-08-12 15:21 def 11 2025-08-12 15:21 xyz
Maintenant que nous avons notre petite archive ZIP, explorons comment SQLite peut nous aider à parcourir et gérer cette archive. Nous pouvons le faire en lançant le programme sqlite et en lui passant le nom de notre fichier ZIP :
$ sqlite3 myarchive.zip SQLite version 3.46.1 2024-08-13 09:16:08 Enter ".help" for usage hints. sqlite>
Maintenant, le programme SQLite a ouvert notre archive ZIP et nous pouvons commencer à explorer. Comme nous allons traiter l'archive comme une base de données, SQLite attribue aux différentes fonctionnalités du fichier des noms de champs de base de données, comme nous pouvons le voir ici en utilisant la commande ".schema" :
sqlite> .schema CREATE VIRTUAL TABLE zip USING zipfile('myarchive.zip') /* zip(name,mode,mtime,sz,rawdata,data,method) */;
Comme on peut le voir à partir du résultat de notre commande ".schema", chaque entrée (fichier ou dossier) dans l'archive a un nom, un mode (type de fichier et permissions), une date de modification et une taille. Chaque entrée a aussi des rawdata (les informations compressées), data (les informations décompressées) et method (le niveau de compression). La plupart du temps, nous serons probablement intéressés seulement par les champs nom, taille et données.
Disons que nous voulons voir une liste des fichiers dans l'archive avec la taille décompressée de chaque fichier. Nous pouvons voir tous les fichiers dans l'archive avec leurs tailles (en octets) en utilisant une commande "select" :
sqlite> SELECT name, sz FROM zip; abc|9 def|9 xyz|11
Dans la commande ci-dessus, nous demandons à SQLite de nous montrer (select) le nom et la taille de chaque fichier de notre archive ZIP. Le résultat est une liste des trois fichiers que nous avons placés initialement dans l'archive, avec la taille décompressée de chaque fichier.
Ensuite, que faire si nous voulons voir le contenu d’un seul de nos fichiers texte sans l’extraire de l’archive ? Nous pouvons le faire avec une autre commande "select", en indiquant que nous voulons voir les données contenues dans un fichier. Dans ce cas, nous allons demander le contenu du deuxième fichier, def :
sqlite> SELECT data FROM zip WHERE name='def'; Line two
Le résultat est le texte "Line two" que nous avions initialement mis dans le fichier texte.
Peut-être que nous voulons supprimer un des fichiers de notre archive. Dans ce cas, nous pouvons utiliser la commande SQL "delete" pour l’effacer de notre fichier ZIP. Dans cet exemple, nous supprimons le fichier def de l’archive avec la commande "delete" puis nous vérifions qu’il a disparu avec une commande "select" :
sqlite> DELETE FROM zip WHERE name='def'; sqlite> SELECT name FROM zip; abc xyz
Comme nous pouvons le voir dans la liste des noms ci-dessus, le fichier def a été supprimé avec succès.
Je voudrais mentionner à ce moment que les commandes SQL ne sont pas sensibles à la casse. Cela signifie que la commande "SELECT name FROM zip;" et "select name from zip;" fonctionneront toutes les deux. Les mots-clés comme "select" et "delete" sont souvent affichés en majuscules dans les exemples pour rendre les différents éléments de la commande plus visibles.
Ensuite, que faire si nous voulons ajouter un nouveau fichier à notre archive ? Nous pouvons le faire en spécifiant le nom du nouveau fichier et son contenu. Cela signifie que nous pouvons inventer le contenu sur le moment, mais il est plus probable que ce que nous voulions faire est de lire les données d'un fichier. Nous pouvons charger un fichier dans l'archive en utilisant la fonction "readfile". Ici, nous lisons le fichier mnop en mémoire et l'insérons dans l'archive :
sqlite> INSERT INTO zip(name, data) values('mnop', readfile('mnop'));
La commande ci-dessus indique à SQLite que nous voulons « insérer » un nouveau fichier. Nous lui faisons savoir que nous allons fournir le nom et les données pour la nouvelle entrée dans l'archive. Ensuite, nous devons fournir deux valeurs, le nom du nouveau fichier et son contenu. Le contenu de mnop est chargé en utilisant la fonction "readfile". Nous pouvons confirmer que la nouvelle entrée a été ajoutée en utilisant à nouveau "select" :
sqlite> select name, sz from zip; abc|9 xyz|11 mnop|10
Nous pouvons voir le contenu de la dernière entrée en demandant le champ data de l'archive stockée sous un nom de fichier spécifique :
sqlite> select data from zip where name='mnop'; Line four
Comme nous pouvons le voir ici, le fichier mnop contenait une ligne de texte, qui lit "Line four".
Une des grandes fonctionnalités de SQLite est que l'outil en ligne de commande peut être utilisé comme un client de base de données classique, comme montré ci-dessus où nous lui donnons des commandes de manière interactive. L'outil en ligne de commande peut aussi exécuter une seule requête sur une base de données ou une archive spécifiée. Cela nous permet d'utiliser SQLite dans des scripts non interactifs ou d'extraire des informations d'une archive et de les exporter ailleurs. Par exemple, si nous voulons extraire le contenu du fichier abc de myarchive.zip et le verser dans un nouveau fichier texte, nous pouvons le faire depuis la ligne de commande, en spécifiant le nom de l'archive et la commande SQL que nous voulons exécuter :
$ sqlite3 myarchive.zip "select data from zip where name='abc'" > newabc.txt $ cat newabc.txt Line one
Dans l'exemple ci-dessus, nous utilisons la commande sqlite3 pour exécuter une seule commande SQL sur le fichier myarchive.zip. Cela va afficher le contenu (données) du fichier texte abc stocké dans notre archive. Nous demandons ensuite à notre shell de verser le texte dans un nouveau fichier appelé newabc.txt. Sur la deuxième ligne, nous affichons le contenu du nouveau fichier pour confirmer que cela a fonctionné.
Cette fonctionnalité en ligne de commande nous permet de réaliser des requêtes rapides, soit de manière interactive, soit depuis un script. Par exemple, la commande suivante nous indiquera combien de fichiers se trouvent dans une archive. Cela s'obtient en utilisant la fonction SQL "count" :
$ sqlite3 large-archive.zip "select count(name) from zip;" 240
On peut voir qu'il y a 240 fichiers et répertoires dans l'archive ZIP large-archive.zip. Alternativement, nous pourrions obtenir la taille totale (décompressée) de tous les fichiers dans l'archive en utilisant cette commande pour obtenir la somme de la taille de chaque fichier en octets :
$ sqlite3 large-archive.zip "select sum(sz) from zip;" 235771456
Certains pourraient débattre pour savoir si utiliser SQLite est plus pratique que d'autres outils, comme zip et unzip. Les outils en ligne de commande standard (et les applications de bureau) pour travailler avec les archives sont efficaces et pratiques. Cependant, quand il s'agit de commandes portables et scriptables qui peuvent être utilisées pour interroger ou manipuler le contenu des archives, il est difficile de battre SQLite en termes de formatage fiable et de lisibilité de ses commandes.
Je retiens au moins une chose : c'est que SQLite est presque PARTOUT, selon l'auteur de l'article. C'est comme monsieur Jourdain qui prosait sans le savoir.
J'ai voulu essayé, mais avec la version 3.7.17 2013-05-20 00:56:22 de SQLite impossible d'analyser le conteneur .zip.