Les fichiers : ouverture

Documents pareils
1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Rappels Entrées -Sorties

Algorithmique et Programmation, IMA

Programmation système de commandes en C

Exonet : sauvegarde automatisée d une base de données

1 Lecture de fichiers

TP 1. Prise en main du langage Python

Bases de programmation. Cours 5. Structurer les données

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Programmation système I Les entrées/sorties

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

ACTIVITÉ DE PROGRAMMATION

Initiation à la programmation en Python

L informatique en BCPST

1 Recherche en table par balayage

Introduction au langage C

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Le système de gestion des fichiers, les entrées/sorties.

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

GESTION DES FICHIERS C/UNIX

Cours Programmation Système

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

EPREUVE PRATIQUE DES TECHNIQUES INFORMATIQUES ACTIVITE N 1. Thème de l activité : Configuration d un firewall

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Le prototype de la fonction main()

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Les structures. Chapitre 3

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Programme awk------introduction rapide

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Perl Orienté Objet BioPerl There is more than one way to do it

Présentation du langage et premières fonctions

FusionInventory. Guillaume Rousse Journées francophones de Perl 2011

Cours d algorithmique pour la classe de 2nde

Cours 1 : Qu est-ce que la programmation?

Configuration des notifications de messagerie avec les scripts pour les alertes IDS avec le CiscoWorks Monitoring Center for Security

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Programmation C++ (débutant)/instructions for, while et do...while

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation impérative

STAGE IREM 0- Premiers pas en Python

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Chap III : Les tableaux

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Cours de Système : Gestion de Fichiers

AWS avancé. Surveiller votre utilisation d EC2

Corrigé des TD 1 à 5

Définitions. Numéro à préciser. (Durée : )

Configurer la supervision pour une base MS SQL Server Viadéis Services

Les fichiers. Chapitre 4

Représentation d un entier en base b

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP


Cours Informatique Master STEP

Techniques de Programmation pour Internet

Premiers pas avec Mathematica

Introduction à MATLAB R

Outils pour la pratique

Cours 7 : Utilisation de modules sous python

Cours 1 : La compilation

Initiation. àl algorithmique et à la programmation. en C

Java et les bases de données

Entraînement au concours ACM-ICPC

Initiation à la Programmation en Logique avec SISCtus Prolog

Programmation système en C/C++

Découverte de Python

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Les arbres binaires de recherche

Maple: premiers calculs et premières applications

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

Déploiement de SAS Foundation

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Conventions d écriture et outils de mise au point

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan


Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Perl Console. Votre compagnon pour développer en Perl. Les Journées du Perl , 17 novembre, Lyon. Alexis Sukrieh

Langage SQL : créer et interroger une base

Cours de Programmation 2

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

I. Introduction aux fonctions : les fonctions standards

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Algorithme. Table des matières

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

modules & compilation

1. Structure d'un programme FORTRAN 95

La Clé informatique. Formation Excel XP Aide-mémoire

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Limites finies en un point

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Java Licence Professionnelle CISII,

Rappels sur les suites - Algorithme

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

1.6- Génération de nombres aléatoires

Transcription:

Les fichiers : ouverture En lecture : la fonction open permet d ouvrir un fichier et prend en paramètre un descripteur (l objet permettant de manipuler le fichier) et le nom du fichier. Format : open (DESC, fichier ); fonction d ouverture descripteur du fichier nom du fichier En écriture : il faut ajouter le symbole > devant le nom du fichier. Si le fichier existe, son contenu sera écrasé. En mode d ajout, on utilise le symbole >>. Si le fichier n existe pas, il sera créé. open (DESC, > fichier ); ouverture en écriture (>> : mode d ajout) 1

Les fichiers : ouverture / fermeture Gestion d erreurs : Lorsqu on ouvre un fichier, il se peut qu il y ait une erreur. En lecture: le fichier n existe pas ou ne peut pas être lu. En écriture: le fichier existe, mais on n a pas le droit d y écrire. La fonction die permet d afficher un message et d arrêter le programme. if (! open (DESC, > fichier ) ) { die "Problème à l ouverture : $!"; open (DESC, > fichier ) die "problème à l ouverture : $!"; La variable $! Contient le message d erreur système. On peut aussi afficher son contenu. La fermeture du fichier s effectue avec la fonction close. exemple : close(desc); 2

Les fichiers : lecture / écriture La lecture dans un fichier se fait par ligne. while ($ligne = <DESC>) { print $ligne ; On peut aussi lire tout le fichier et le placer dans un tableau. À chaque indice du tableau, il y aura une ligne du fichier. @ligne = <DESC> ; L écriture dans un fichier est encore plus simple. Il suffit de spécifier le descripteur du fichier à l utilisation du print. print DESC " allo le monde " ; 3

Les fichiers : lecture / écriture (2) Quelques exemples équivalents de lecture d un fichier: while (defined($line = <DESC>)) { print "I saw $line"; while (<DESC>) { print "I saw $_"; while (defined($_ = <DESC>)) { print "I saw $_"; foreach (<DESC>) { print "I saw $_"; 4

L opérateur < > L opérateur <> (diamond operator) est utilisé en Perl pour effectuer la lecture des fichiers dont les noms sont introduits sur la ligne de commande. Si aucun fichier n est spécifié sur la ligne de commande, l entrée se fait de l entrée standard <STDIN>. La ligne de commande: $./my_program fred barney betty Deux versions équivalentes du programme qui lisent les lignes des fichiers fred, barney et betty: while (defined($line = <>)) { chomp($line); print "It was $line that I saw!\n"; while (<>) { chomp; print "It was $_ that I saw!\n"; 5

La sortie formatée avec l opérateur printf Quelques exemples d utilisation de printf: $user = "merlyn"; $days_to_die = 3; printf "Hello, %s; your password expires in %d days!\n", $user, $days_to_die; # Imprime: Hello, merlyn; your password expires in 3 days! printf "%g %g %g\n", 5/2, 51/17, 51 ** 17; printf "in %d days!\n", 17.85; # 2.5 3 1.0683e+29 # imprime: in 17 days! printf "%6d\n", 42; # la sortie est comme suit: 42 printf "%2d\n", 2e3 + 1.95; # 2001 printf "%10f\n", 6 * 7 + 2/3; # la sortie est comme suit: 42.6666667 printf "%10.3f\n", 6 * 7 + 2/3; # la sortie est comme suit: 42.667 printf "%10.0f\n", 6 * 7 + 2/3; # la sortie est comme suit: 43 6

Les identifiants des fichiers Les identifiants réservés par Perl: STDIN, STDOUT, STDERR, DATA, ARGV et ARGVOUT. Quelques exemples d ouverture de fichiers: open CONFIG, "dino"; # ouverture du fichier dino open CONFIG, "<dino"; # ouverture du fichier dino en lecture open BEDROCK, ">fred"; # ouverture du fichier dino en écriture open LOG, ">>logfile"; # ouverture du fichier dino en ajout Quelques exemples d ouverture de fichiers : open CONFIG, "<", "dino"; open BEDROCK, ">", $file_name; open LOG, ">>", &logfile_name( ); Fermeture de fichiers: close BEDROCK; 7

Les fonctions die et warn La fonction die permet d arrêter le programme et d afficher un message d erreur (celui d utilisateur): if (! open LOG, ">>logfile") { die "Cannot create logfile!"; (ou celui du système d exploitation): if (! open LOG, ">>logfile") { die "$!"; La fonction warn permet aussi d afficher un message d erreur, mais n arrête pas l exécution du programme: if (! open LOG, ">>logfile") { warn "Cannot create logfile!"; 8

Le changement de la sortie par défaut Un identifiant de fichier peut être utilisé avec la commande print: print LOG "Captain's log, stardate 3.14159\n"; # la sortie ira au fichier LOG printf STDERR "%d percent complete.\n", $done/$total * 100; Cette syntaxe est aussi correcte (mais pas recommandée): printf (STDERR "%d percent complete.\n", $done/$total * 100); printf STDERR ("%d percent complete.\n", $done/$total * 100); Utilisation d un autre identifiant de sortie par défaut au lieu de STDOUT: select BEDROCK; # la commande select permet de changer l identifiant par défaut print "I hope Mr. Slate doesn't find out about this.\n"; print "Wilma!\n"; 9

Les fichiers : exemple Ce programme effectue la copie du fichier input.txt vers le fichier output.txt. 10

Les variables spéciales et tableaux spéciaux Petit récapitulatif des variables spéciales: ce sont les variables sous la forme $c (où c est un caractère non-alphabétique). Les tableaux spéciaux commencent par le caractère @ ou %. $_ Variable Description variable par défaut courante (par exemple dans foreach) $! dernière erreur (est utilisée pour la détection d erreurs) $0 nom du programme @_ @ARGV %ENV @INC contient les paramètres passés à une fonction tableau des arguments passés au programme tableau des variables d environnement tous les répertoires Perl contenant des librairies 11

La ligne de commande Comme en Java, et dans la plupart des langages de programmation, on peut passer des paramètres au programme sur la ligne de commande. En Perl, ces paramètres sont lus dans la variable spéciale @ARGV. Exemple : (soit le programme copie.pl) Appel : > perl copie.pl input.txt output.txt 12

Les fonctions système Nom Description Exemple print Affichage d une chaîne print bonjour le monde ; die Arrêt du programme en affichant un message if ($fruit -ne fraise ) { die dommage! ; exit Arrêt du programme. if ($fruit ne fraise ) { exit; system Exécute un programme du système sleep n Le programme «dort» pendant n secondes. system mkdir inf7212 ; sleep 100; 13

Les fonctions mathématiques Nom Description Exemple sin sinus $res = sin (0) ; cos cosinus $res = cos ($val) ; log logarithme $res = log ( 20) ; int valeur entière $res = int (10.2) ; => 10 sqrt racine carrée $res = sqrt (20) ; rand(n) entiers pseudo-aléatoire $res = rand(100) ; abs valeur absolue $res = abs (-10) ; => 10 14

Exercices (4) 1) Écrire un programme Perl permettant d associer un prix à chaque fruit (en utilisant un tableau associatif). Les prix doivent être saisis au clavier. Puis utilisez une boucle pour trouver la pomme et afficher son prix. 2) Écrire un programme Perl permettant d effectuer un tri bulle (voir le pseudocode sur le diapositif suivant). Coder ces programmes à la démo!! 15

Solution (exercice 1) #!/usr/bin/perl use strict; use warnings; Inf7212 - Introduction aux systèmes informatiques my %fruits = ('pommes'=>0, 'poires'=>0); my $prix; foreach my $elt (keys % fruits) { print STDOUT "\nsaisir le prix des $elt : "; $prix = <STDIN>; chomp ($prix); $fruits{$elt = $prix; foreach my $elt (keys %fruits) { print STDOUT "\n$elt -> ". $fruits{$elt; 16

Exercice (tri bulle) Écrire une fonction permettant d effectuer le tri bulle d entiers. Écrire un programme permettant de lire sur la ligne de commande les valeurs à trier, puis d effectuer le tri. Pseudo-code de l algorithme du tri bulle : Inf7212 - Introduction aux systèmes informatiques PRODECURE Tri_bulle (Tableau a[1:n])!!variable permut : Booleen;!!REPETER!!!permut = FAUX!!!POUR i VARIANT DE 1 à N-1 FAIRE!!!!SI a[i] > a[i+1] ALORS!!!!!echanger a[i] et a[i+1]!!!!!permut = VRAI!!!!FIN SI!!!FIN POUR!!TANT QUE permut = VRAI! FIN PROCEDURE 17