Langage C : LES FICHIERS (Cours et Exercices corrigés)
Monday, June 6, 2011     17:19
  • Mon @ IP: 54.161.75.128



retour

Poster un commentaire ou une réponse

LES FICHIERS (Cours et Exercices corrigés)

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:53:43

-----------------------------------GENERALITES--------------------------


Un fichier est un ensemble d'informations stockées sur une mémoire de masse (disque dur, disquette, bande magnétique, CD-ROM).

En C, un fichier est une suite d'octets. Les informations contenues dans le fichier ne sont pas forcément de même type (un char, un int, une structure ...)
Un pointeur fournit l'adresse d'une information quelconque.

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:54:03

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:54:22

On distingue généralement deux types d'accès:

1- Accès séquentiel (possible sur tout support, mais seul possible sur bande magnétique):

- Pas de cellule vide.
- On accède à une cellule quelconque en se déplaçant (via un pointeur), depuis la cellule de départ.
- On ne peut pas détruire une cellule.
- On peut par contre tronquer la fin du fichier.
- On peut ajouter une cellule à la fin.


2- Accès direct (RANDOM I/O) (Utilisé sur disques, disquettes, CD-ROM où l'accès séquentiel est possible aussi).

- Cellule vide possible.
- On peut directement accéder à une cellule.
- On peut modifier (voir détruire) n'importe quelle cellule.

Il existe d’autre part deux façons de coder les informations stockées dans un fichier :

1- En binaire :

Fichier dit « binaire », les informations sont codées telles que. Ce sont en général des fichiers de nombres. Ils ne sont pas listables.

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:54:44

2- en ASCII :

Fichier dit « texte », les informations sont codées en ASCII. Ces fichiers sont listables. Le dernier octet de ces fichiers est EOF (caractère ASCII spécifique).


--------------------------MANIPULATION DES FICHIERS-----------------------------


Opérations possibles avec les fichiers: Créer - Ouvrir - Fermer - Lire - Ecrire - Détruire - Renommer. La plupart des fonctions permettant la manipulation des fichiers sont rangées dans la bibliothèque standard STDIO.H, certaines dans la bibliothèque IO.H pour le BORLAND C++.

Le langage C ne distingue pas les fichiers à accès séquentiel des fichiers à accès direct, certaines fonctions de la bibliothèque livrée avec le compilateur permettent l'accès direct. Les fonctions standards sont des fonctions d'accès séquentiel.

1 - Déclaration: FILE *fichier;/* majuscules obligatoires pour FILE */

On définit un pointeur. Il s'agit du pointeur représenté sur la figure du début de chapitre. Ce pointeur fournit l'adresse d'une cellule donnée.
La déclaration des fichiers doit figurer AVANT la déclaration des autres variables.

2 - Ouverture: FILE *fopen(char *nom, char *mode);

On passe donc 2 chaînes de caractères
nom: celui figurant sur le disque, exemple: « a :\toto.dat »

mode (pour les fichiers TEXTES) :
« r » lecture seule
« w » écriture seule (destruction de l'ancienne version si elle existe)
« w+ »lecture/écriture (destruction ancienne version si elle existe)
« r+ »lecture/écriture d'un fichier existant (mise à jour), pas de création d'une nouvelle version.
« a+ »lecture/écriture d'un fichier existant (mise à jour), pas de création d'une nouvelle version, le pointeur est positionné à la fin du fichier.

mode (pour les fichiers BINAIRES) :
« rb » lecture seule
« wb » écriture seule (destruction de l'ancienne version si elle existe)
« wb+ »lecture/écriture (destruction ancienne version si elle existe)
« rb+ »lecture/écriture d'un fichier existant (mise à jour), pas de création d'une nouvelle version.
« ab+ »lecture/écriture d'un fichier existant (mise à jour), pas de création d'une nouvelle version, le pointeur est positionné à la fin du fichier.

A l’ouverture, le pointeur est positionné au début du fichier (sauf « a+ » et « ab+ »)

Exemple : FILE *fichier ;
fichier = fopen(« a :\toto.dat », « rb ») ;


Publicité

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:54:57

3 - Fermeture: int fclose(FILE *fichier);
Retourne 0 si la fermeture s’est bien passée, EOF en cas d’erreur.
Il faut toujours fermer un fichier à la fin d'une session. mode (pour les fichiers TEXTE) :

Exemple : FILE *fichier ;
fichier = fopen(« a :\toto.dat », « rb ») ;
/* Ici instructions de traitement */
fclose(fichier) ;

4 - Destruction: int remove(char *nom);
Retourne 0 si la fermeture s’est bien passée.

Exemple : remove(« a :\toto.dat ») ;

5 - Renommer: int rename(char *oldname, char *newname);
Retourne 0 si la fermeture s’est bien passée.

6 - Positionnement du pointeur au début du fichier: void rewind(FILE *fichier);

7- Ecriture dans le fichier:

int putc(char c, FILE *fichier);
Ecrit la valeur de c à la position courante du pointeur , le pointeur avance d'une case mémoire.
Retourne EOF en cas d’erreur.

Exemple : putc(‘A’, fichier) ;

int putw(int n, FILE *fichier);
Idem, n de type int, le pointeur avance du nombre de cases correspondant à la taille d'un entier (4 cases en C standard).
Retourne n si l’écriture s’est bien passée.

int fputs(char *chaîne, FILE *fichier); idem avec une chaîne de caractères, le pointeur avance de la longueur de la chaine ('\0' n'est pas rangé dans le fichier).
Retourne EOF en cas d’erreur.

Exemple : fputs(« BONJOUR ! », fichier) ;

int fwrite(void *p,int taille_bloc,int nb_bloc,FILE *fichier); p de type pointeur, écrit à partir de la position courante du pointeur fichier nb_bloc X taille_bloc octets lus à partir de l'adresse p. Le pointeur fichier avance d'autant.
Le pointeur p est vu comme une adresse, son type est sans importance.
Retourne le nombre de blocs écrits.
Exemple: taille_bloc=4 (taille d'un entier en C), nb_bloc=3, écriture de 3 octets.
int tab[10] ;
fwrite(tab,4,3,fichier) ;

int fprintf(FILE *fichier, char *format, liste d'expressions); réservée plutôt aux fichiers ASCII.
Retourne EOF en cas d’erreur.

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:55:42

Exemples: fprintf(fichier,"%s","il fait beau");
fprintf(fichier,%d,n);
fprintf(fichier,"%s%d","il fait beau",n);

Le pointeur avance d'autant.

8 - Lecture du fichier:

int getc(FILE *fichier); lit 1 caractère, mais retourne un entier n; retourne EOF si erreur ou fin de fichier; le pointeur avance d'une case.
Exemple:
char c ;
c = (char)getc(fichier) ;

int getw(FILE *fichier); idem avec un entier; le pointeur avance de la taille d'un entier.
Exemple: int n ;
n = getw(fichier) ;

char *fgets(char *chaine,int n,FILE *fichier); lit n-1 caractères à partir de la position du pointeur et les range dans chaine en ajoutant '\0'.

int fread(void *p,int taille_bloc,int nb_bloc,FILE *fichier); analogue à fwrite en lecture.
Retourne le nombre de blocs lus, et 0 à la fin du fichier.

int fscanf(FILE *fichier, char *format, liste d'adresses); analogue à fprintf en lecture.

9 - Gestion des erreurs:

fopen retourne le pointeur NULL si erreur (Exemple: impossibilité d'ouvrir le fichier).

fgets retourne le pointeur NULL en cas d'erreur ou si la fin du fichier est atteinte.

la fonction int feof(FILE *fichier) retourne 0 tant que la fin du fichier n’est pas atteinte.

la fonction int ferror(FILE *fichier) retourne 1 si une erreur est apparue lors d'une manipulation de fichier, 0 dans le cas contraire.

10 - Fonction particulière aux fichiers à acces direct:

int fseek(FILE *fichier,int offset,int direction) déplace le pointeur de offset cases à partir de direction.
Valeurs possibles pour direction:
0 -> à partir du début du fichier.
1 -> à partir de la position courante du pointeur.
2 -> en arrière, à partir de la fin du fichier.

Retourne 0 si le pointeur a pu être déplacé;

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:56:03

-------------------------------------EXERCICES-----------------------------

Exercice IX_1: Copier un fichier texte dans un autre: créer un fichier "essai.dat" sous éditeur. Tester le programme en vérifiant après exécution la présence du fichier copié dans le directory.

Exercice IX_2: Calculer et afficher le nombres de caractères d'un fichier ASCII (Utiliser n'importe quel fichier du répertoire).

Exercice IX_3: Créer et relire un fichier binaire de 10 entiers.

Exercice IX_4: Lire un fichier texte, avec un contrôle d'erreur: L'utilisateur saisit le nom du fichier, la machine retourne le listing du fichier s'il existe et un message d'erreur s'il n'existe pas.

Exercice IX_5: Créer et relire un fichier texte de 5 chaînes de 3 caractères.

Exercice IX_6: Ajouter une fiche (c'est à dire une chaîne de 3 caractères) au fichier précédent et relire le fichier.

Exercice IX_7: Rechercher une fiche dans le fichier précédent.

Exercice IX_8: Exercice récapitulatif: Créer une structure nom, prénom, âge. Ecrire un programme de gestion de fichier (texte) avec menu d'accueil: possibilité de créer le fichier, de le lire, d'y ajouter une fiche, d'en rechercher une.


------------------------CORRIGE DES EXERCICES-----------------------------

Exercice IX_1:

#include <stdio.h>
#include <conio.h>
void main()
{
FILE *fichier1,*fichier2;
char c;

printf("COPIE EN COURS ...\n");
fichier1 = fopen("c:\\bc5\\Courc_C\\Teach_C\\CHAP9\\essai.dat","r");
fichier2 = fopen("copie.dat","w");
while((c=(char)getc(fichier1))!=EOF)putc(c,fichier2);
fclose(fichier1);
fclose(fichier2);
printf("C'EST FINI !\n");
printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:56:34

Exercice IX_2:

#include <stdio.h>
#include <conio.h>
void main()
{
FILE *fichier;
int compteur=0;
fichier = fopen("c:\\bc5\\Courc_C\\teach_C\\chap9\\copie.dat","r");
while(getc(fichier)!=EOF)compteur++;
fclose(fichier);
printf("TAILLE DU FICHIER: %d OCTETS\n",compteur);
printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

Exercice IX_3:

#include <stdio.h>
#include <conio.h>
void main()
{
FILE *fichier;
int i,n;
fichier = fopen("nombre.dat","wb+");
for(i=0;i<10;i++)
{
printf("N = ");
scanf("%d",&n);
putw(n,fichier);
}
rewind(fichier);

while(!feof(fichier)) /* essayer avec une boucle for */
{
n=getw(fichier);
printf("%d ",n);
}

fclose(fichier);
printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

Exercice IX_4:

#include <stdio.h>
#include <conio.h>
void main()
{
FILE *fichier;
char c,nom[10];
printf("NOM DU FICHIER A LISTER: ");
gets(nom);
if((fichier = fopen(nom,"r"))==NULL)
printf("\nERREUR A L'OUVERTURE, CE FICHIER N'EXISTE PAS\n");
else
{
printf("\n\t\t\tLISTING DU FICHIER\n");
printf("\t\t\t------------------\n\n");
while((c=getc(fichier))!=EOF)printf("%c",c);
}
fclose(fichier);
printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:56:57

Exercice IX_5:

#include <stdio.h>
#include <conio.h>
void main()
{
FILE *fichier;
int i;
char p[4];

/* saisie du fichier */
fichier = fopen("chaine.dat","w+");
printf("\nENTRER 5 CHAINES DE 3 CARACTERES\n");
for(i=0;i<5;i++)
{
gets(p);
fputs(p,fichier);
}
rewind(fichier); /* pointeur au debut */

/* relecture du fichier */
printf("\n\nLECTURE DU FICHIER\n\n");
while((fgets(p,4,fichier))!=NULL)printf("%s ",p);
fclose(fichier);

printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

Exercice IX_6:

#include <stdio.h>
#include <conio.h>

void main()
{
FILE *fichier;
char p[4];

/* ajout d'une chaine */
fichier = fopen("chaine.dat","a+"); /* pointeur a la fin */
printf("\nENTRER LA CHAINE DE 3 CARACTERES A AJOUTER\n");
gets(p);
fputs(p,fichier);

/*lecture du fichier pour verification */
rewind(fichier);
printf("\n\nLECTURE DU FICHIER\n");
while((fgets(p,4,fichier))!=NULL)printf("%s ",p);
fclose(fichier);

printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

Exercice IX_7:

#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
FILE *fichier;
char p[4],q[4],trouve=0;

/* recherche d'une chaine */
fichier = fopen("chaine.dat","r"); /* lecture seule */
printf("\nENTRER LA CHAINE DE 3 CARACTERES RECHERCHEE\n");
gets(p);
printf("\n\nRECHERCHE ...\n\n");
while(((fgets(q,4,fichier))!=NULL)&&(trouve==0))
if(strcmp(p,q)==0)trouve = 1; /* compare les chaines */
if (trouve ==0) printf("CETTE CHAINE N'EXISTE PAS DANS LE FICHIER\n");
else printf("CHAINE TROUVEE DANS LE FICHIER\n");

/*lecture du fichier pour verification */
rewind(fichier);
printf("\n\nLECTURE DU FICHIER\n");
while((fgets(q,4,fichier))!=NULL)printf("%s ",q);
fclose(fichier);

printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:57:26

Exercice IX_8:

#include <stdio.h>
#include <conio.h>
#include <string.h>

typedef struct
{
char nom[10];
char prenom[10];
int age;
}
carte;/* creation d'un type carte */

void creer_fichier(FILE *f,char *n)
{
char choix;
carte fiche;
clrscr();
printf("CREATION DU FICHIER \n\n");
printf("NOM DU FICHIER A CREER: ");
gets(n);
flushall();
f = fopen(n,"w");
do
{
printf("\nSAISIE D'UNE FICHE ?(o/n) ");
choix = (char)getchar();
flushall();
if ((choix=='o')||(choix=='O'))
{
printf("\nNOM: ");gets(fiche.nom);
printf("PRENOM: ");gets(fiche.prenom);
printf("AGE: ");scanf("%d",&fiche.age);
flushall();
fwrite(&fiche,sizeof(carte),1,f);
}
}
while((choix=='o')||(choix=='O'));
fclose(f);
}

void lire_fichier(FILE *f,char *n)
{
carte fiche;
int compteur=0;
clrscr();
printf("LECTURE DU FICHIER\n\n");
printf("NOM DU FICHIER A LIRE: ");gets(n);
flushall();
f = fopen(n,"r");
if (f == NULL) printf("\nERREUR, CE FICHIER N'EXISTE PAS\n\n");
else
{
printf("\nLISTING DU FICHIER\n\n");
while(fread(&fiche,sizeof(carte),1,f)!=0)
{
printf("fiche nø%d: \n",compteur);
compteur++;
printf("%s %s %d an(s)\n\n",fiche.nom,fiche.prenom,fiche.age);
}
fclose(f);
}
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}

void ajout(FILE *f,char *n)
{
carte fiche;
char choix;
clrscr();
printf("AJOUT D'UNE FICHE \n\n");
printf("NOM DU FICHIER A MODIFIER: ");
gets(n);
flushall();
f = fopen(n,"a");
do
{
printf("\nSAISIE D'UNE FICHE ?(o/n) ");
choix = (char)getchar();
flushall();
if ((choix=='o')||(choix=='O'))
{
printf("\nNOM: ");gets(fiche.nom);
printf("PRENOM: ");gets(fiche.prenom);
printf("AGE: ");scanf("%d",&fiche.age);
flushall();
fwrite(&fiche,sizeof(carte),1,f);
}
}
while((choix=='o')||(choix=='O'));
fclose(f);
}

void recherche(FILE *f,char *n)
{
carte fiche;
int compteur=0;
char trouve = 0,nn[10],pp[10];
clrscr();
printf("RECHERCHE DE FICHE\n\n");
printf("NOM DU FICHIER: ");
gets(n);


Publicité

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:57:37

flushall();
f = fopen(n,"r");
printf("\nFICHE A RETROUVER:\n");
printf("NOM: ");gets(nn);
printf("PRENOM: ");gets(pp);
flushall();
while((fread(&fiche,sizeof(carte),1,f)!=0)&&(trouve==0))
{
if((strcmp(fiche.nom,nn)==0)&&(strcmp(fiche.prenom,pp)==0))
{
trouve=1;
printf("FICHE RETROUVEE: FICHE nø-\n",compteur);
}
compteur++;
}
if (trouve==0)printf("CETTE FICHE N'EXISTE PAS\n");
fclose(f);
printf("POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}

void main()
{
FILE *fichier;
char nom[10];/* nom du fichier */
char choix;
do
{
clrscr();
printf("\t\t\tGESTION DE FICHIER\n");
printf("\t\t\t------------------\n\n\n");
printf("CREATION DU FICHIER ---> 1\n");
printf("LECTURE DU FICHIER ---> 2\n");
printf("AJOUTER UNE FICHE ---> 3\n");
printf("RECHERCHER UNE FICHE ---> 4\n");
printf("SORTIE ---> S\n\n");
printf("VOTRE CHOIX: ");
choix = (char)getchar();
flushall();
switch(choix)
{
case '1':creer_fichier(fichier,nom);break;
case '2':lire_fichier(fichier,nom);break;
case '3':ajout(fichier,nom);break;
case '4':recherche(fichier,nom);break;
}
}
while ((choix!='S') && (choix!='s'));
}

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:57:57

Les exécutables

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:58:20

EXIX_1.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:58:31

EXIX_2.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:59:40

EXIX_3.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 15:07:17

EXIX_4.CPP


Publicité

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 15:07:36

EXIX_5.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 15:07:42

EXIX_6.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 15:07:51

EXIX_7.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 15:08:01

EXIX_8.CPP

Poster un commentaire ou une réponse :
Poster
     Ajouter un document à la discussion:
       

Actualité informatique et High-Tech

16-10-2015               lire

Dropbox propose aussi un outil d'écriture collaborative à son service

16-10-2015               lire

Bientôt des DRM dans des JPEG

17-04-2015               lire

Google propose une requête pour retrouver son téléphone

17-04-2015               lire

Youtube prépare une offre payante sans publicité

17-04-2015               lire

Sony Pictures : Des milliers de mails et documents confidentiels dévoilés

07-04-2015               lire

T411 bloqué par les FAI français

07-04-2015               lire

NVIDIA publie un pilote correctif et met à jour SHIELD Hub ainsi que GeForce Experience

07-04-2015               lire

Linkedin acquiert la start-up Refresh

03-04-2015               lire

Chromebit, la clé USB Google et Asus qui transforme n’importe quel écran en ordinateur

03-04-2015               lire

Une personne aurait pu supprimer toutes les vidéos d’une chaine Youtube en quelques secondes

03-04-2015               lire

Firefox 37 apporte un cryptage complémentaire à HTTPS

03-04-2015               lire

Windows XP, ce système qui ne veut pas mourir

02-04-2015               lire

Piratage de Labio.fr : le laboratoire répond à nos questions et ne payera pas la rançon

02-04-2015               lire

AWS lance des instances géantes avec 48 To de stockage

02-04-2015               lire

WhatsApp ajoute les appels gratuits et illimités à son application

31-03-2015               lire

Nadim Kobeissi : de Cryptocat à Peerio, du piratage au doctorat

31-03-2015               lire

L'Université de Nantes inaugure son datacenter modulaire taillé pour le HPC

31-03-2015               lire

GitHub victime d’une attaque DDoS majeure

27-03-2015               lire

Googlinette : les recherches de Google en devinettes

27-03-2015               lire

F8 : Facebook ouvre Messenger au e-commerce

27-03-2015               lire

À la SNCF, une fuite de données simple comme une touche F5

23-03-2015               lire

Des satellites GPS de Boeing affectés par une erreur technique

23-03-2015               lire

Plus de 700 000 routeurs ADSL vulnérables au piratage

23-03-2015               lire

Twitter sous le coup d’une action collective pour discrimination

22-03-2015               lire

Les montres connectées étaient déjà présentes dans les films, séries et dessins animés

22-03-2015               lire

Une Audi autonome va traverser les USA de SF à New York

20-03-2015               lire

Éclipse du Soleil : comment la suivre en direct sur Internet

20-03-2015               lire

Projet Leap : des bus 2.0 à San Francisco

20-03-2015               lire

Nvidia dévoile Drive PX, un système de conduite autonome

17-03-2015               lire

Embarquez pour Apollo 11, expérience virtuelle hors du commun

16-03-2015               lire

Ce jour où Google a exposé les données de 282 867 domaines

16-03-2015               lire

Yahoo publie le code de son plug-in de chiffrement mail

16-03-2015               lire

Après un an sans mise à jour, HAWKEN revient à la vie

12-03-2015               lire

Le big data au service du séquençage ADN pour accélérer les diagnostics

12-03-2015               lire

Clap de fin pour PlayStation Mobile

12-03-2015               lire

Apple : retour à la normale après une panne de plus de 11 heures

12-03-2015               lire

Ericsson va supprimer 2 200 postes en Suède

12-03-2015               lire

Le plan de Fleur Pellerin contre le piratage sur Internet

10-03-2015               lire

Apple Watch, Watch Edition et Watch Sport : de 399 à 18.000 euros !

10-03-2015               lire

Apple présente le “nouveau MacBook” qui remplace le MacBook Air

09-03-2015               lire

Google développe une version d'Android pour la réalité virtuelle

09-03-2015               lire

Quand la MPAA demande à Google de déréférencer son propre site

09-03-2015               lire

Heroes of the Dorm : un tournoi HotS avec 450 000 $ de bourses d'études à gagner

09-03-2015               lire

1 milliard d'adresses mails volées, 2 pirates inculpés

09-03-2015               lire

VMware accusé de violation de code Linux

09-03-2015               lire

Les drones civils bientôt immatriculés ?

05-03-2015               lire

7 sites qui permettent d’envoyer des fichiers de + ou – 2 Go

04-03-2015               lire

Smartphones : Apple passe en tête devant Samsung56% des consommateurs inquiets pour leurs données en Europe

04-03-2015               lire

Smartphones : Apple passe en tête devant Samsung

04-03-2015               lire

MWC 2015 : Onevisage pésente un scan facial 3D pour smartphones

04-03-2015               lire

Caméras sportives : Xiaomi s'attaque au monopole GoPro

04-03-2015               lire

Yi Camera, la caméra embarquée de Xiaomi à moins de 60€

04-03-2015               lire

Faille FREAK : quand des connexions SSL/TLS se contentent d'un chiffrement RSA sur... 512 bits

04-03-2015               lire

Bientôt des pubs sur Google Play (Android)

28-02-2015               lire

En partenariat avec "Positive Technologies", Esprit a l'honneur d'inviter ses étudiants à la 1ère édition de l’événement ESPRIT HACK DAYS dans les locaux d'ESPRIT Chotrana 2 et ce le 03 et le 04 Mars 2015.

28-02-2015               lire

La direction des stages d’ESPRIT et Ernst & Young ont le plaisir d'inviter ses étudiants à la journée de l’entreprise du mercredi 4 mars 2015 dans la salle E5 d’ESPRIT Factory.

25-02-2015               lire

Adobe fête les 25 ans de son logiciel Photoshop

25-02-2015               lire

Linux 4.0 : gros numéro et petite version

Haut de page.