Tableaux et fichiers. Licence AES AGE



Documents pareils
Cours 14 Les fichiers

Programmation système I Les entrées/sorties

Programmation impérative

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

Introduction à MATLAB R

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

Stockage du fichier dans une table mysql:

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

25 mars. Tutoriel sur Laravel. Préparé par : Lydiane Beaulne-Bélisle. Ceci est un tutorial qui montre comment débuter avec le Framework PHP Laravel.

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Les fichiers. Chapitre 4

Module http MMS AllMySMS.com Manuel d intégration

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)

AWS avancé. Surveiller votre utilisation d EC2

Cours d initiation à la programmation en C++ Johann Cuenin

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

Chap III : Les tableaux

Les structures. Chapitre 3

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)

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

ALGORITHMIQUE ET PROGRAMMATION En C

Qu est ce qu un ?

Développement d applications Internet et réseaux avec LabVIEW. Alexandre STANURSKI National Instruments France

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Java Licence Professionnelle CISII,

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

PG208, Projet n 3 : Serveur HTTP évolué

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

Projet ISN - dossier réalisé par Randrianarimanana Stéphanie. Titre du projet : Site de rencontre. le nom de notre site de rencontre : Linkymeet

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

Devenez un véritable développeur web en 3 mois!

RÉALISATION D UN SITE DE RENCONTRE

La gestion des dossiers sous Windows Vista, W7, W8.

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

1 Lecture de fichiers

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

DUPLICATION DES DONNEES. Jeudi 19 avril 2012

4. Groupement d objets

COMMUNICATION PC/MINITEL

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Présentation du logiciel

L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?

Mysql avec EasyPhp. 1 er mars 2006

FICHE 17 : CREER UN SITE WEB

Cours 1 : Qu est-ce que la programmation?

SOLUTIONS INTERNET KIOSQUES INTERACTIFS

Python - introduction à la programmation et calcul scientifique

Programmation Web. Madalina Croitoru IUT Montpellier

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

TP1 - Prise en main de l environnement Unix.

PLAN DE FORMATION TECHNICIEN(NE) D'ASSISTANCE EN INFORMATIQUE TAI

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

10 points clés pour bien démarrer votre projet web

Trois nouveaux formulaires sont donc nécessaires : Pour l affichage de la liste, un formulaire de sortie WEB_Liste associé à la table des [Films] ;

Algorithme. Table des matières

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

TP 1. Prise en main du langage Python

Un site web collaboratif avec Drupal. Judith Hannoun - Journées INSHS 16 Octobre 2012

SUPPORT DE COURS. Langage C

Manuel d'installation

Guide d utilisation de la clé mémoire USB

Fichiers, dossiers, enregistrer et arborescence

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

PHP. PHP et bases de données

Dropbox : démarrage rapide

Formation : WEbMaster

Atelier n 12 : Assistance à distance

Diffuser un contenu sur Internet : notions de base... 13

Chapitre 1 Qu est-ce qu une expression régulière?

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

ACTIVITÉ DE PROGRAMMATION

Internet personnel. Auteur: Guillaume GUAY La Clé Informatique Université de Sherbrooke, mars 2006

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

Programmer en JAVA. par Tama

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

WordPress : principes et fonctionnement

Créer et partager des fichiers

Cours d algorithmique pour la classe de 2nde

Cours 1 : La compilation

Tsoft et Groupe Eyrolles, 2005, ISBN :

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

SRAL Saint Raphaël. Maison des associations 213, rue de la Soleillette Saint Raphaël. : : dromain.jean-pierre@neuf.

Chess Arbiter Pro (version Dames) Notice d utilisation


Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

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

Alpha PRIMO 58 boulevard baron du Marais Roanne / / contact@alphaprimo.fr

L informatique en BCPST

CAHIER DES CHARGES DES MOYENS INFORMATIQUES Introduction

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

Généralités sur le Langage Java et éléments syntaxiques.

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

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

Transcription:

Tableaux et fichiers Licence AES AGE D.Gonzalez Mars 2004

Table des matières 1 Les tableaux 2 1.1 Qu est-ce qu un tableau?................................ 2 1.2 Quelques exemples d utilisation............................. 2 1.2.1 Remplir et afficher le contenu un tableau................... 2 1.2.2 Parenthèse algorithmique : la boucle for................... 3 1.2.3 Des exemples moins élémentaires........................ 3 1.2.4 Et avec des fichiers?............................... 5 1.3 Exercices......................................... 5 2 Les fichiers 7 2.1 Manipulations de base.................................. 7 2.1.1 Ouverture (et fermeture) d un fichier...................... 7 2.1.2 Écrire dans un fichier.............................. 7 2.1.3 Lire le contenu d un fichier........................... 7 2.2 Un exemple........................................ 8 2.3 Exercice.......................................... 9 1

Chapitre 1 Les tableaux Le stockage et la manipulation d un grand nombre de données nécessitent souvent l utilisation de tableaux. 1.1 Qu est-ce qu un tableau? Pour simplifier, voici 3 définitions équivalentes : c est une variable qui peut stocker plusieurs valeurs à la fois, chacune étant numérotée ; OU : c est un ensemble de variables différentes, regroupées sous le même nom, chacune étant différenciée des autres par un numéro ; OU : c est la représentation informatique d un vecteur (ou d une matrice), chacune des composantes étant connue par son indice. D une manière plus générale : Un tableau est d abord une variable, donc son nom commence par «$». La syntaxe est la même que dans la plupart des langages : «$x[$j]» désigne le «$j e» élément du tableau «$x». Attention : en PHP la numérotation des éléments d un tableau commence toujours à zéro. 1.2 Quelques exemples d utilisation 1.2.1 Remplir et afficher le contenu un tableau On peut remplir, par exemple, les cases d un tableau une par une : $t[0]="bonjour" ; $t[1]="bonsoir" ; $t[2]="bla bla bla" ; On peut aussi utiliser une boucle for pour remplir une série de cases : $i=3 ; while ($i<8) { $t[$i]=$i*5 ; $i=$i+1 ; Pour ce qui de l affichage, on est obligé de passer aussi par les cases une par une : l utilisation de «echo $t ;» ne permet pas d afficher le contenu du tableau. echo "case numéro 2 : ".$t[2]."<br>\n"; $i=2 ; while ($i<6) { echo "case numéro $i : ".$t[$i]."<br>\n"; 2

$i=$i+1; Remarque. Il existe aussi la fonction «array» qui permet de constuire un tableau. Par exemple l instruction $t = array( "abcd", 13, 12.8, $henri + $marcel, gfd ) ; aura le même effet que la suite d instructions $t[0] = "abcd" ; $t[1] = 13 ; $t[2] = 12.8 ; $t[3] = $henri + $marcel ; $t[4] = gfd ; 1.2.2 Parenthèse algorithmique : la boucle for Vous avez sans doute remarqué que l accès à un tableau nécessite presque toujours l utilisation d une boucle while. Ceci est dû au fait que les tableaux sont des juxtapositions de données, souvent identiques dans leurs formes, et dont sur lesquelles on applique souvent le même traitement. La boucle de traitement classique des éléments N (inclus) à P (exclus) d un tableau $t sera donc : $i = N ; while ($i < P ) { traitement de $t[$i] $i = $i+1 ; Il existe en PHP une façon plus concise d écrire ce genre de boucle : la boucle for : for ( $i=n ; $i<p ; $i=$i+1 ) { traitement de $t[$i] La boucle for n est en fait qu une abbréviation d un type particulier de boucle while. Écrire for ( A ; B ; C ) { D est totalement la même chose qu écrire A while ( B ) { D C Remarque. On écrira souvent «$i++» à la place de «$i=$i+1». 1.2.3 Des exemples moins élémentaires Il existe d autres façons de remplir un tableau. Commencez par trouver l aide sur la fonction «explode» (c est une fonction de manipulation de chaînes de caractères) et sur la fonction «count» (c est une fonction de manipulation de tableaux). Comprenez maintenant comment fonctionne ce programme (pas très utiles, il faut bien le reconnaître) : //-------------------- $chaine="ab cde fgh ijk"; 3

$mots = explode(" ",$chaine); echo "$chaine :\n<ul>\n"; for ($i=0;$i<count($mots);$i++) { echo "<LI>".$mots[$i]."\n"; echo "</UL>\n"; //-------------------- $chaine="à la claire fontaine m en allant promener..."; $mots = explode(" ",$chaine); echo "$chaine :\n<ul>\n"; for ($i=0;$i<count($mots);$i++) { echo "<LI>".$mots[$i]."\n"; echo "</UL>\n"; //-------------------- $chaine="ceci est une phrase avec des mots. Normal, non?"; $mots = explode(" ",$chaine); echo "$chaine :\n<ul>\n"; for ($i=0;$i<count($mots);$i++) { echo "<LI>".$mots[$i]."\n"; echo "</UL>\n"; //-------------------- </UL></BODY></HTML> Et celui-ci (toujours aussi peu utile) : $liste=array( "ab cde fgh ijk", "À la claire fontaine m en allant promener...", "Ceci est une phrase avec des mots. Normal, non?" ); for ($j=0; $j<count($liste); $j++) { $chaine=$liste[$j]; $mots = explode(" ",$chaine); echo "$chaine :\n<ul>\n"; for ($i=0;$i<count($mots);$i++) { echo "<LI>".$mots[$i]."\n"; echo "</UL>\n"; </BODY></HTML> Maintenant testez (et comprenez) ce programme : <FORM ACTION="tableau-02.php"> <INPUT SIZE="60" NAME="saisie"> <INPUT TYPE="submit" VALUE="Traiter"> </FORM> <HR> Les mots de la cha^ıne tapée sont : <UL> 4

$mots = explode(" ",$saisie); for ($i=0; $i<count($mots); $i++) { echo "<LI>".$mots[$i]; </UL></BODY></HTML> 1.2.4 Et avec des fichiers? On a un fichier de données : il contient les informations suivantes : Thor;Aipaleur;12 Rue Yves Atrovite;59118;Wambrechies Helmut;Ardalpic;25 Avenue Yann Akpourlui;29000;Quimper Jacques-André;Lejouré-Lanuit;5 Boulevard Agathe Zepower;92230;Gennevilliers Gédéon;Teuzmany;123 Rue Alphonse Danltas;59650;Villeneuve d Ascq Hakim;Ainerve;2 Rue Yvon Anchier;59830;Cysoing Thérèse;Ultasonnul;99 Avenue Sophie Fonfec;13000;Marseille Il s agit de renseignements portant sur une liste de personnes. Chaque ligne est sous la forme «prénom ; nom ; adresse ; code postal ; ville» (séparés par des points-virgules). Commencez par trouver l aide sur la fonction «file» (c est une fonction de manipulation de fichiers). Le programme suivant va lire le fichier et afficher de manière propre son contenu : <OL> // lecture du fichier et stockage dans un tableau // (chaque ligne du fichier est dans une case du tableau) $lignes = file("tableau-03.txt"); // traitement de chaque ligne for ($i=0; $i<count($lignes); $i++) { // éclatement en éléments distincts $personne=explode(";",$lignes[$i]); // affichage "propre" des renseignements echo "<LI>".$personne[0]." ".strtoupper($personne[1])."<br>".$personne[2]."<br>".$personne[3]." ".$personne[4]; </OL></BODY></HTML> 1.3 Exercices 1. On dispose du fichier suivant contenant des adresses web (rien en vous empêche d en choisir d autres). Écrire un programme qui lit ce fichier pour construire une page web contenant une liste de liens hypertextes. http://www.hoaxbuster.com/ http://www.gazel.nu/faqs/virus.htm#e-mail http://www.electriccafe.org/jbt/ http://www.zetetique.ldh.org/ http://perso.wanadoo.fr/jean.brissonnet/ http://www.thejackytouch.com/ http://www.multimania.com/lepoulpe 5

2. Même exercice, mais cette fois chaque ligne comprend aussi une description du site pointé (la séparation étant assuré par la chaîne «"**"») : http://www.hoaxbuster.com/**hoaxbuster, première... http://www.gazel.nu/faqs/virus.htm#e-mail**est-il... http://www.electriccafe.org/jbt/**nemo Joe Bar Team Spirit http://www.zetetique.ldh.org/**le cercle Zététique http://perso.wanadoo.fr/jean.brissonnet/**éthique et toc http://www.thejackytouch.com/**the Jacky Touch http://www.multimania.com/lepoulpe**le poulpe sur la toile 3. On donne une liste de personnes dont voici les premières lignes : 19;Thor;Aipaleur;tata 30;Dick;Sionnaire;dsds 35;Debbie;Zoudanlkou;dzdz 47;Mélanie;Zaitofrai;mzmz 48;Helmut;Ardelpic;haha 49;Jacques-André;Lejouré-Lanuit;jljl 68;Phil;Alapate;papa Chaque ligne est composée, dans l ordre, d un identifiant (un nombre), un prénom, un nom, et un mot de passe. Écrire une page web qui affiche cette liste d une mamière propre. Variante : Écrire une page web qui donne à sélectionner une des personnes et qui affiche ensuite son mot de passe. 6

Chapitre 2 Les fichiers Un fichier (ou file en anglais, ou document dans le monde Windows) est l objet qui permet à un système d exloitation (donc aussi aux programmes qu il supporte) d enregister des informations sur le disque dur (ou la disquette). 2.1 Manipulations de base Pour utiliser des fichiers il faut savoir les écrire et les relire. 2.1.1 Ouverture (et fermeture) d un fichier Avant tout accès à un fichier il faut l ouvrir, ce qui se fait par la fonction «fopen» dont la syntaxe est : int fopen (string fichier, string mode) où : int signifie que la fonction renvoie une valeur entière. fichier est le nom du fichier à ouvrir. mode décrit la façon dont le fichier sera utilisé. Les valeurs les plus courantes sont : r : Ouvre en lecture seule, et place le pointeur de fichier au début du fichier. w : Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n existe pas, on tente de le créer. a : Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n existe pas, on tente de le créer. Un fichier ouvert par «fopen» sera fermé par «fclose». 2.1.2 Écrire dans un fichier Nous n étudierons que les fichiers de texte. Mais vous trouverez plus d information sur les fichiers dans l aide de PHP, par exemple à l adresse : http://fr.php.net/manual/fr/html/ref.filesystem.html Pour écrire dans un fichier de texte il faut utiliser la fonction «fwrite» (ou la fonction «fputs» qui est en tous points identique). 2.1.3 Lire le contenu d un fichier Deux solutions radicalement différentes : «file» qu on a déjà vue dans le chapitre sur les tableaux, et qui lit le fichier en une seule fois en le rangeant dans un tableau. «fgets» qui lit le fichier ligne par ligne, et qui impose donc un certain contrôle. 7

Il existe d autres façons de lire les informations rangées dans un fichier mais nous ne les aborderons pas. Comme précédemment vous trouverez plus d information sur les fichiers dans l aide de PHP, par exemple à l adresse : http://fr.php.net/manual/fr/html/ref.filesystem.html 2.2 Un exemple Nous allons réaliser un mini-site qui permet d ajouter une ligne à la fois dans un fichier, tandis qu une page permettra d afficher le contenu du fichier. 1. Formulaire : fichier-01.php <FORM ACTION="fichier-02.php"> Saisie : <INPUT NAME="ligne"> <INPUT TYPE="submit"> </FORM> </BODY></HTML> Il s agit en fait d une simple page HTML contenant un formulaire. 2. Traitement du formulaire (écriture dans le fichier) : fichier-02.php // ouverture du fichier "fichier-04.txt en mode "a" (append=ajout) // l identifiant renvoyé est $fp // il sera utilisé pour l écriture et la fermeture $fp = fopen ("fichier-04.txt","a"); // écriture de la valeur reçue (plus une fin de ligne) fputs ($fp,$ligne."\n"); // fermeture du fichier fclose ($fp) Le fichier a été modifié. </BODY></HTML> Attention : Pour que ce programme fonctionne il faut qu il ait les droits en écriture sur le fichier fichier-04.txt. Ce programme ne devrait pas être laissé en accès libre sur le réseau : n importe qui peut l utiliser et remplir le disque en écrivant dans le fichier sans contrôle. 3. Affichage du contenu du fichier : Première solution, avec la fonction file : fichier-03.php $f=file("fichier-04.txt"); for ($i=0;$i<count($f);$i++) { echo $f[$i]."<br>"; </BODY></HTML> Deuxième solution (pour information, la première étant plus simple), avec la fonction fgets : fichier-04.php 8

$fp = fopen ("fichier-04.txt","r"); while ($l=fgets($fp,500)) { echo $l."<br>"; fclose($fp); </BODY></HTML> 2.3 Exercice Écrire un gestionnaire d annuaire téléphonique. Le minimum à atteindre : 1. Une page (formulaire) qui permet de saisir le nom, le prénom et le numéro de téléphone d une personne. 2. L appui sur la touche d envoi enregistre les coordonnées dans un fichier. 3. Une page qui permette de présenter proprement la liste des contacts. Vous avez le choix sur le sens à donner au mot «proprement» : en tableau, en liste, etc. L important est que ce soit lisible. 4. On doit pouvoir passer facilement d une page à l autre : soit des liens entre les pages, soit une page d accueil. Des améliorations possibles, qui ne seront prises en compte que ce qui précède est réalisé : 1. La liste affichée pourra être mise dans l ordre alphabétique (voir la fonction «sort»). 2. On pourra offrir la possibilité de supprimer un contact. 3. On pourra offrir la possibilité de modifier un contact. 9