Ce chapitre aborde la manipulation des fichiers : lecture, écriture, modification. Les fichiers sont de type : texte, binaire. L’accès aux données se fait d’une manière séquentielle, ou bien d’une façon directe avec un calcul de déplacement.

Syntaxe :

Déclaration

nom_fichier : Fichier
FILE * nom_fichier ; //un pointeur sur le fichier


Opérations sur les fichiers

Ouverture :

nom_fichier <- ouvrir (nom_physique, mode) mode [lecture, écriture, ajout]
nom_fichier = fopen(nom_physique, mode) ; mode ["r", "w", "a"]

Fermeture :

fermer (nom_fichier) fclose (nom_fichier)

Lecture des données :

lire (nom_fichier, nom_variable)

----------------------------------------

C et PHP : fgetc, fgets , fscanf, fread

Ecriture des données :

ecrire (nom_fichier, nom_variable)

----------------------------------------

C et PHP : fputc, fputs, fprintf, fwrite

Tester la fin du fichier :

fin_fichier (nom_fichier) [vrai, faux]

----------------------------------------

C et PHP : feof(nom_fichier)

Exercice

A vous de jouer !

Consigne : Ecrire un algo, programmation C et développement PHP qui permet de lire un fichier texte et d’afficher son contenu ainsi que le nombre de caractères.

Algo : fichier 
Déclaration 
	f : fichier
	nomF : chaine 
	car : caractère 
	nb : entier  
Début
	Afficher ("Donner le nom de votre fichier :")
	Saisir (nomF)
	
	nb <- 0
	f <- ouvrir (nomF, lecture)
	tant que fin_fichier (f) = faux faire 
		lire (f, car)
		afficher (car)
		nb <- nb +1
	fin tant que 
	fermer (f)
	Afficher ("Le nombre de caractères contenus dans le fichier est de :", nb)

Fin fichier 

//A tester sur son appareil a l'aide d'un IDE C++

#include <stdio.h>
int main (){
	FILE * f; 
	char nomF [50]; 
	char car ; 
	int nb ; 
	printf ("Donner le nom de votre fichier : "); 
	scanf("%s", &nomF); 
	nb = 0; 
	f = fopen(nomF, "r"); 
	while (!feof(f)) {
		car = fgetc(f); 
		printf("%c", car);
		nb ++; 
	}
	fclose (f); 
	printf("Le nombre de caractères contenus dans le fichier est de : %d", nb);
	return  0; 
}

//A tester sur son appareil avec une pile logicel type XAMPP

<!DOCTYPE html>
<html>
<head>
    <title>Fichiers</title>
    <meta charset="utf-8">
</head>
  <body>
    <div class="contenu-centre">
            <h1>Exercice fichiers</h1>
            <p>Saisissez le nom d'un fichier texte pour l'afficher à l'ecran ainsi que le nombre de caractéres qu'il contient</p>
            <form method="post">
                <label>Donnez le nom du fichier :</label>
                <input type="text" name="nomF"><br/>
                <input type="submit" name="afficher" value="afficher">
            </form>
            
            <?php 
            
            if (isset($_POST["nomF"])) {
                $nomF= $_POST['nomF'];
                $nb = 0;
                $f = fopen($nomF,"r");
	            while(! feof($f) ){
		        $car = fgetc($f);
		        printf("%c",$car);
		        $nb++;
            }
            
	fclose ($f);
	printf("Le nombre de caractéres contenus dans le fichier est de : %d", $nb);
            }
            
            ?>
        </div>
    </body>
</html>

Exercice fichier

Veuillez choisir un fichier texte afin de l’ouvrir et d’afficher le nombre de caractéres qu’il contient