Exemple de création puis de lecture d’un fichier texte délimité par des ;
Remarque la fin de ligne est signalée par les caractères CR et LF soit Aciii 13 puis 10
/* v2.0
This example shows how to read and write structured data to and from an SD card file
The circuit (UNO BOARD):
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4
*/
#include <SD.h>
File fAccess;
String sUser[4][3]; //-- Store the 4 User, Password, Profile in a 3 dimentional array
int i1,i2;
//Parsing des lignes à l'aide : stringOne.indexOf
void setup(){
Serial.begin(9600);
//-- SD initialization
pinMode(4, OUTPUT); //-- pin 10 Uno, pin 4 for Ethernet Shield
if (!(SD.begin(4))) {
Serial.println("initialization rate!");
return;
}
Serial.println("initialization done.");
//-- Writing Data (UserName, UserPass, UserProfile)
fAccess = SD.open("access.txt", FILE_WRITE);
//-- if the file opened okay, write to it:
if (fAccess) {
Serial.print("Writing access...");
fAccess.println("user1;pass1;profil1");
fAccess.println("user2;pass2;profil2");
fAccess.println("user3;pass3;profil3");
fAccess.println("user4;pass4;profil4");
// close the file:
fAccess.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("Error writting file");
}
//-- re-open the file for reading:
int i=1;
int j=0;
String sVar="";
char cCar;
fAccess = SD.open("access.txt");
if (fAccess) {
Serial.println("Reading access.txt:");
i=1;
// read from the file until there's nothing else in it:
while (fAccess.available()) {
cCar=fAccess.read();
Serial.print("-");
Serial.print(cCar+0);
Serial.print("-");
if (cCar!=13)
if (cCar!=10)
sVar=sVar+cCar;
else
{
Serial.println("");
sVar.trim();
Serial.println(sVar);
i1=sVar.indexOf(';');
i2=sVar.indexOf(';',i1+1);
Serial.println("User="+sVar.substring(0,i1));
Serial.println("Pass="+sVar.substring(i1+1,i2));
Serial.println("Profil="+sVar.substring(i2+1));
i++;
sVar="";
}
}
Serial.println("");
sVar.trim();
Serial.println(sVar);
i1=sVar.indexOf(';');
i2=sVar.indexOf(';',i1+1);
Serial.println("User="+sVar.substring(0,i1));
Serial.println("Pass="+sVar.substring(i1+1,i2));
Serial.println("Profil="+sVar.substring(i2+1));
// close the file:
fAccess.close();
fAccess.flush();
SD.remove("access.txt");
Serial.println("Deleting access.txt");
}
else {
// if the file didn't open, print an error:
Serial.println("error opening access.txt");
}
}
void loop()
{}
Ecran de contrôle :
Reading access.txt:
-117–115–101–114–49–59–112–97–115–115–49–59–112–114–111–102–105–108–49–13–10-
user1;pass1;profil1
User=user1
Pass=pass1
Profil=profil1
-117–115–101–114–50–59–112–97–115–115–50–59–112–114–111–102–105–108–50–13–10-
user2;pass2;profil2
User=user2
Pass=pass2
Profil=profil2
-117–115–101–114–51–59–112–97–115–115–51–59–112–114–111–102–105–108–51–13–10-
user3;pass3;profil3
User=user3
Pass=pass3
Profil=profil3
-117–115–101–114–52–59–112–97–115–115–52–59–112–114–111–102–105–108–52-
user4;pass4;profil4
User=user4
Pass=pass4
Profil=profil4
Votre commentaire