1 File::Tabular Recherche et édition dans des fichiers tabulaires

Slides:



Advertisements
Présentations similaires
Présentation du Stage en Entreprise
Advertisements

SIFAC doit s'appuyer sur le Système d'Information
Stockage de données.
Access Frédéric Gava (MCF)
Créer une base de données MySQL Et création de tables, enregistrements, interaction avec PHP.
Vocabulaire pour la passage du modèle conceptuel des données au modèle relationnel des données. MCDMRD EntitéTable PropriétésChamps, attribut IdentifiantClé
12/10/2000Cédric Bertho - Comparaison entre Perl et Python1 vs Comparaison.
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T PhpMyGI une interface générique mysql Interface générique ? Pourquoi une interface.
C.
Objectifs Présentation et utilisation du langage PERL
! 1 CREATION D'UNE MAQUETTE EXPORT / IMPORT
DUE PAR AUTHENTIFICATION
JAV - TD 6 Structures de données JAVA
PHP Interface base de données
Élise VAREILLES Introduction à la programmation en Perl There is more than one way to do it Élise VAREILLES
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
Faculté I&C, Claude Petitpierre, André Maurer Bases de données SQL (Structured Query Language)
Le 8 mars Notre vision du web-to-print. le 8 mars Information pour le système Prisme Technologies Prisme Technologies se spécialise dans.
Analyse lexicale Généralités Expressions rationnelles Automates finis
EndNote Stage octobre Pour vos bibliothèques.
13 juin Sympa, méthodologie pour les upgrades.
© OECD A joint initiative of the OECD and the European Union, principally financed by the EU Valorisation des Ressources Humaines Rabat, 23 juin 2010 Les.
IFT Structures de données
Perl, un langage de programmation pour les données textuelles
1Info III Perlsous-programmessyntaxe de base sub foo { my $arg1 = shift; my $arg2 = shift; # do stuff with $arg1, $arg2,…, compute $result.
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Programmation nawk(1)
Eric Laporte Institut Gaspard-Monge Université de Marne-la-Vallée France Introduction à Perl.
1 PHP 1.Langage PHP 1.1. Types de base, variables et constantes 1.2. Opérateurs et expressions 1.3. Instructions 1.4. Fonctions 2.Accès aux bases de données:
Les concepts et les méthodes des bases de données
Modex Web Dominique Rossin
Python Fonction et procédure
1 GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 8 Filtres UNIX.
Jean-Michel ILIE - novembre SIL - module M12 Programmation Internet en PHP SIL module M12 Jean-Michel Ilié IUT Paris 5 - département informatique.
CHAPITRE 4 : Gestion des Utilisateurs et Groupes
Cours n°4M2. ESCE (S. Sidhom) Séminaire ( 6-12 Février 2007 ) Promo. M2 ESCE-Tunis 2006/07 Conception d’un système d'information sur Internet Architecture.
A ctiveX D ata O bject avec D elphi Durée 14 heures.
Créer des packages.
CONSULTER permet toujours d’explorer le protocole sans y apporter de modification. Pour MODIFIER le protocole, il faut indiquer le motif de cette.
 Syntaxe du langage PHP
Module 7 : Utilisation de requêtes élaborées
1 Search::Indexer Indexation plein-texte en Perl
Heg Haute école de gestion de Neuchâtel 24/11/00Cahier théorique 02 V1-01 Prise en main (2) Création et gestion d'une association.
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
CSI2520 Un langage de programmation par scripting orienté-objet (et fonctionnel)
06:34:37 Programmation Web PHP Fonctions associées aux tableaux Jérôme CUTRONA
1 Plus loin dans l’utilisation de Windows Vista ©Yves Roger Cornil - 2 août
 Formulaires HTML : traiter les entrées utilisateur
RETRO v2 « Analyse Fonctionnelle » Octobre 2007 JYR.
Conception de Site Webs Interactifs Cours 7 Patrick Reuter
Cours n°4M1.ist-ie (S. Sidhom) UE 203 Promo. M1 IST-IE 2006/07 Conception d’un système d'information sur Internet Architecture trois-tiers : technologies.
Cours Access TuanLoc NGUYEN. Contact Nguyen TuanLoc Tél: Web:
1 Structure en MC Principes Stockage des données dans la mémoire volatile d’un ordinateur Problèmes Stockage temporaire «Petits» volumes de données Langages.
Module 133 Développer des applications Web Introduction à PHP.
05/02/98WEB ESNIG Création module Filtre/Liste/Edition Oracle Designer/2000 & Oracle Web Server.
Séance /10/2004 SGBD - Approches & Principes.
ESPE Dépôt pour les masters 2nd degré Module évaluateur Mis à jour le 10 septembre 2015.
Front Office Interface de consulation des documents disponibles en ligne, elle prévoit : Une page d’identification avec contrôle cette étape permet au.
Cours n°2 Implémentation et exploitation
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
A la découverte d’Excel Certificat Informatique et Internet.
Importations et exportations On peut transférer les données vers 40 logiciels de comptabilité. Cela génère des fichiers d’écritures. Cette partie permet.
Master 1ère année Sécurité des Systèmes d’Information 1 Programmation en shell.
Projet Théorie des graphes
Sommaire  Fonctionnement du site MVC – Model View Controller Implémentation pour le SdE Système d’onglets  Bases de données  Maintenance.
Accès simplifié Web pour les responsables de Cuma 3 mars 2016.
Opérations courantes Guillaume PHILIPPON. Sommaire Mise à jour des QWG Gestion des utilisateurs Ajout/Suppression d’un programme Préparation des « OS.
Introduction à Perl … en trois heures. Plan  Syntaxe  variables  scalaires  listes  tables de hachages  spécial…  Plus de syntaxe  fonctions définies.
Tableaux croisés dynamiques sous Excel: des outils simples pour une analyse rapide de jeux de données en cytométrie Camille SANTA MARIA Ingénieur d’étude.
Transcription de la présentation:

1 File::Tabular Recherche et édition dans des fichiers tabulaires

LD, PJGE, juin Fichier tabulaire champ1 | champ2 | champ3 v11 | v12 | v13 v21 | v22 | v23... ex.: /etc/passwd séparateur de champs noms de champs sur 1 ère ligne enregistrements sur lignes suivantes  CSV,"ce, ""format""",mal,fichu

LD, PJGE, juin Fichier tabulaire vs. SGBD u gratuit u portable, échangeable (Emacs, Excel,...) u aucune installation u recherches multi- champs, regex u lectures et recherches rapides MAIS u monotable u pas pour de très gros volumes u mises à jour lentes, locking global

LD, PJGE, juin Pas besoin d'un module Perl ! my $headerLine = ; chomp $headerLine; = split /\|/, $headerLine; foreach my $dataLine ( ) { chomp $dataLine; my %data; = split /\|/, $dataline; print $data{field1}, $data{fieldN};... }

LD, PJGE, juin Oui mais... u recherches multicritères u modifications u locks u journal u génération de clés

6 File::Tabular Recherches

LD, PJGE, juin API use File::Tabular; my $f = new File::Tabular($filename); my $row = $f->fetchrow; print $row->{field1}, $row->{field2};... $f->rewind;

LD, PJGE, juin API (suite) $row = $f->fetchrow(where=>'someWord'); $row = $f->fetchrow(where=> 'field1=4 AND field2>=" "'); $row = $f->fetchrow(where=> qr/some\s+(complex\s*)? (regex|regular\ expression)/xi);

LD, PJGE, juin API (suite) $rows = $f->fetchall(where => 'someField =~ ^[abc]+'); $rows = $f->fetchall(where => '+f1:someWord -f2:otherWord', orderBy => 'f1, f5:-alpha, f4:-d.m.y');

LD, PJGE, juin API (suite) $hashRows = $f->fetchall( where => 'foo AND NOT bar', key => 'someField' );

LD, PJGE, juin Search::QueryParser u préfixes + / - u AND, OR, NOT, (parenthèses) u champ:valeur u champ valeur txt : ( foo bar ) txt ~ "foo|bar" txt = foo OR txt = "bar" mot entier regex eq

LD, PJGE, juin Hash::Type u Pseudo-Hashes implémentation : arrays (économie RAM) fonction de comparaison $pType = new Hash::Type(qw(fname lname birth)); $cm = new $personType(qw(claudio monteverdi)); $cm->{birth} = 1567; $byAge = $pType->cmp("birth : -num, lname"); foreach (sort {.... }

LD, PJGE, juin compileFilter sub compileFilter { my $self = shift; my $q = shift; return eval "sub {my $r = shift;".. " and ".... } compilation du filtre closure sur $self

14 File::Tabular Édition principe : regrouper les entrées-sorties

LD, PJGE, juin API $f = new File::Tabular("+<$filename", {journal => ">>$journalFile"}); $f->append( {f1=>$v1, f2=>$v2,...}, {...},... ); my $hType = $f->ht; my $row = new $hType ($v1, $v2,...); $f->append($row);

LD, PJGE, juin API (suite) $f->splices( 4 => 2, undef, 7 => 1, {f1 => $v1, f2 => $v2,...}, 9 => 0, {...}, 22 => 0, [{...}, {...},...], -1 => 0, [{...}, {...},...] ); détruit 2 lignes remplace 1 ligne insère 1 ligne insère n lignes = append

LD, PJGE, juin API (suite) $f->writeKeys({ key1 => {f1 => $v1, f2 => $v2,...}, key2 => undef,... ajout ou mise à jour suppression

LD, PJGE, juin Implémentation des mises à jour u début du fichier intact u à partir de la première modif. : copie du reste du fichier sur fichier temporaire (File::Temp) merge entre les données de splice ou writeKeys et le reste du fichier Temp.

LD, PJGE, juin Journal # on rejoue les mises à jour depuis # un fichier de backup my $bck = new File::Tabular("+<$backupFile"); $bck->playJournal($journalFile);