Récupérer des informations sur un fichier .txt via carte SD

Bonjour,

Pour mon projet, je dois récupérer le nom d'une machine, l'adresse ip du réseau, l'utilisateur et le mot de passe sur un fichier config.txt se trouvant sur la carte SD de mon shield Ethernet.

Pour le moment, l'adresse ip, l'utilisateur et le mot de passe sont aléatoire puisque je cherche la principe, j'aimerais trouver un moyen qui fonctionne à tous les coups pour récupérer une information.

Le fichier config.txt se présente sous cette forme :
A01:10.138.0.1:TOTO:TOTOTTE

J'ai réussi à lire tous les caractères et à tout mettre dans un tableau, maintenant j'aimerais ranger chaque information dans sa variable.
Le nom de la machine dans la variable nom_machine, l'adresse ip dans la variable ip, l'utilisateur dans la variable user et le mot de passe dans la variable pw.

Mon problème, c'est qu'actuellement je n'arrive pas à ranger les informations malgrès des heures de recherche.

Voici mon code :

#include <SD.h>

File fichier;

char inputChar;
const int TAILLE = 80;
char tabsd[TAILLE];
int evolutif = 0;
String nom_machine = "";
String ip = "";
int j = 0;

void setup() 
{
  Serial.begin(115200);
  if (!SD.begin(4)) {
    Serial.println("Erreur à l'init!");
    return;
  }
  Serial.println("init Ok.");
  fichier = SD.open("config.txt");


}

void loop() 
{
  inputChar = fichier .read();

  if(inputChar != EOF)
  {
    Serial.print("EOF : ");
    Serial.println(inputChar);
    tabsd[evolutif] = inputChar;
    Serial.print("tableau : ");
    Serial.println(tabsd[evolutif]);
  }
  if(inputChar == EOF)
  {
    for(int i = 0; i < evolutif; i++)
    {
      if(tabsd[j] != ':')
      {
        nom_machine = nom_machine + tabsd[i];
      }
      else if(tabsd[j] == ':')
      {
        j++;
      }
      j++;
    }
    Serial.print("Nom Machine : ");
    Serial.println(nom_machine);
  }
  Serial.print("J : ");
  Serial.println(j);
  evolutif++;
  delay(1000);
}

Je pense que cette méthode n'est pas trop mal mais je n'arrive pas à ce que je veux.
Avez vous des solutions à mon problème ?
Merci.

n'utilisez pas la classe String. jetez un oeil à la fonction [url=http://www.cplusplus.com/reference/cstring/strtok/]strtok()[/url]

Idéalement vous auriez une fonction analyserFichier() qui ouvre le fichier, le lit, extrait l'information et stocke les données dans une petite structure et ferme le fichier (ne pas oublier) - et ne pas faire cela dans la loop() qui j'imagine va faire autre chose