Fonction pour lire un fichier TXT dans SD et l'envoyer à un client ethernet

Bonjour,

Voici un bout de code :

myFile=SD.open("entete.txt"); // ouvre le fichier en lecture
               for (int i=0; i<myFile.size(); i++ ) {
                  myFile.seek(i); // se positionne à la position i
                  client.print(char(myFile.peek())); //envoie vers le client ethernet
                }
            myFile.close(); // fermeture du fichier

Quand ce code se trouve dans la boucle loop ça fonctionne.
Je n'arrive pas à creer une fonction....

exemple :

void FichierVersClient(String Fichier, Ethernetclient client)
{
myFile=SD.open(Fichier); // ouvre le fichier en lecture
               for (int i=0; i<myFile.size(); i++ ) {
                  myFile.seek(i); // se positionne à la position i
                  client.print(char(myFile.peek())); //envoie vers le client ethernet
                }
            myFile.close(); // fermeture du fichier
}

J'ai besoin d'un peu d'aide avec les variables de passage
Merci pour votre aide....

Salut.
Pour moi, dans ta fonction, il te manque toute la partie "initialisation" du client ethernet.
Donc, soit tu l'initialise avant, de façon "global", et tu l'utilise directement dans ta fonction (sans la déclarer en variable), soit tu initialise le client ethernet dans ta fonction.

Merci pour ta réponse.
j'ai initialisé le client et utiliser une fonction pour écrire au client ça fonctionne.
c'est : SD.open("entete.txt") qui ne passe pas et voilà ce que l'IDE renvoie :

testSD_ethernet.ino: In function 'void FichierVersClient(String, EthernetClient)':
testSD_ethernet:151: error: no matching function for call to 'SDClass::open(String&)'
D:\arduino-1.0.4\libraries\SD/SD.h:74: note: candidates are: File SDClass::open(const char*, uint8_t)

A priori, d'après l'erreur, c'est le type string de l'argument fichier de ta fonction qui pose problème.
il faut que tu le déclare en char, le type attendu par la classe de référence.

Merci pour ton aide !!!

la variable fichier doit être du type : const char*

void FichierVersClient (const char* Fichier,EthernetClient client){
         myFile=SD.open(Fichier); // ouvre le fichier en lecture
         for (int i=0; i<myFile.size(); i++ )
         {
          myFile.seek(i); // se positionne à la position i
          client.write(char(myFile.peek())); // affiche le caractère courant             
         }
         myFile.close(); // fermeture du fichier