Modifications

Sauter à la navigation Sauter à la recherche
Ligne 69 : Ligne 69 :     
== Lecture de fichiers ==
 
== Lecture de fichiers ==
Ensuite, nous allons vous montrer comment lire un fichier, c'est très similaire à l'écriture, pour cela, nous utiliserons '''SD.open()''' pour ouvrir le fichier mais cette fois on ne passe pas le paramètre '''FILE_WRITE''' cela nous gardera d'écrire accidentellement dans le fichier (ouverture en lecture seule). Vous pouvez alors appeler la fonction '''available()''' (elle vous indiquera s'il reste des données à lire) et un '''read()''' sur le fichier vous renverra l'octet suivant.
+
Ensuite, nous allons vous montrer comment lire un fichier, c'est une opération très similaire à l'écriture. Pour la réaliser, nous utiliserons '''SD.open()''' pour ouvrir le fichier mais cette fois on ne passe pas le paramètre '''FILE_WRITE''' durant l'appel. Cela évitera d'écrire accidentellement dans le fichier (car il sera ouvert en lecture seule). Vous pouvez alors appeler la fonction '''available()''' (elle indique s'il reste des données à lire) et un '''read()''' sur le fichier (pour lire l'octet suivant).
    
  <nowiki>#include <SD.h>
 
  <nowiki>#include <SD.h>
Ligne 79 : Ligne 79 :  
   Serial.begin(9600);
 
   Serial.begin(9600);
 
   Serial.print("Initializing SD card...");
 
   Serial.print("Initializing SD card...");
// Sur la platine Ethernet, CS est la broche 4. Elle est définie comme une sortie par défaut.
+
  // Sur la platine Ethernet, CS est la broche 4. Elle est définie comme une sortie par défaut.
// Notez que même si elle n'est pas utilisée comme broche CS, la broche SS  
+
  // Notez que même si elle n'est pas utilisée comme broche CS, la broche SS  
// (10 sur la plupart des cartes Arduino, 53 sur les Méga) doit être laissée comme une sortie
+
  // (10 sur la plupart des cartes Arduino, 53 sur les Méga) doit être laissée comme une sortie
// Ou les fonctions de la bibliothèque SD ne fonctionneront pas.
+
  // sinon les fonctions de la bibliothèque SD ne fonctionneront pas.
  pinMode(10, OUTPUT);
+
  pinMode(10, OUTPUT);
    
   if (!SD.begin(10)) {
 
   if (!SD.begin(10)) {
Ligne 91 : Ligne 91 :  
   Serial.println("initialization done.");
 
   Serial.println("initialization done.");
   −
// ouvrir le fichier pour la lecture :
+
  // ouvrir le fichier pour la lecture :
 
   myFile = SD.open("test.txt");
 
   myFile = SD.open("test.txt");
 
   if (myFile) {
 
   if (myFile) {
 
     Serial.println("test.txt:");
 
     Serial.println("test.txt:");
   −
// lire le fichier jusqu'à la fin :
+
    // lire le fichier jusqu'à la fin :
 
     while (myFile.available()) {
 
     while (myFile.available()) {
 
         Serial.write(myFile.read());
 
         Serial.write(myFile.read());
 
     }
 
     }
// fermer le fichier :
+
    // fermer le fichier :
 
     myFile.close();
 
     myFile.close();
 
   } else {
 
   } else {
        // si le fichier ne se ferme pas, afficher une erreur :
+
    // si le fichier ne se ferme pas, afficher une erreur :
 
     Serial.println("error opening test.txt");
 
     Serial.println("error opening test.txt");
 
   }
 
   }
Ligne 114 : Ligne 114 :       −
Certaines choses sont à noter:
+
Certaines éléments sont à noter:
 
* Vous pouvez avoir plusieurs fichiers ouverts en même temps, et lire à partir de chacun d'eux comme vous le souhaitez.
 
* Vous pouvez avoir plusieurs fichiers ouverts en même temps, et lire à partir de chacun d'eux comme vous le souhaitez.
* '''read()''' retourne un seul octet à la fois. Elle ne lit pas une ligne complète ou un nombre!
+
* La fonction '''read()''' retourne un seul octet à la fois. Elle ne lit pas une ligne complète ou un nombre!
* Vous devez '''close()''' le(s) fichier(s) lorsque vous avez terminé pour réduire la quantité de RAM utilisée
+
* Vous devez fermer le(s) fichier(s) avec la fonction '''close()''' lorsque vous avez terminé pour réduire la quantité de RAM utilisée
    
{{ambox-stop | text = La bibliothèque de la carte SD ne prend pas en charge les «noms de fichiers longs» tels que nous sommes habitués. Au lieu de cela, il utilise le format DOS 8.3 pour les noms de fichiers, donc n'utilisez que les noms de fichiers courts! Par exemple '''IMAGE.JPG''' est très bien, et '''datalog.txt''' est aussi très bien mais pas '''My GPS log file.text'''!
 
{{ambox-stop | text = La bibliothèque de la carte SD ne prend pas en charge les «noms de fichiers longs» tels que nous sommes habitués. Au lieu de cela, il utilise le format DOS 8.3 pour les noms de fichiers, donc n'utilisez que les noms de fichiers courts! Par exemple '''IMAGE.JPG''' est très bien, et '''datalog.txt''' est aussi très bien mais pas '''My GPS log file.text'''!
   −
Garder à l'esprit que les noms de fichiers courts ne sont pas sensibles à la case «case sensitive», de sorte '''datalog.txt''' est le même fichier que '''DataLog.Txt''' et idem pour le fichier '''DATALOG.TXT'''}}
+
Garder à l'esprit que les noms de fichiers courts ne sont pas sensibles à la case (not case sensitive), de sorte '''datalog.txt''' est le même fichier que '''DataLog.Txt''' et idem pour le fichier '''DATALOG.TXT'''}}
    
== Enumérer / lire récursivement  les fichiers ==
 
== Enumérer / lire récursivement  les fichiers ==
29 917

modifications

Menu de navigation