title: Arduino reading SD file line by line C++
body: <p>I am trying to read a text file "Print1.txt", line by line, from an SD card attached to my Arduino MEGA. So far I have the following code:</p>
  
  <pre><code>#include &lt;SD.h&gt;
  #include &lt;SPI.h&gt;
  int linenumber = 0;
  const int buffer_size = 54;
  int bufferposition;
  File printFile;
  char character;
  char Buffer[buffer_size];
  boolean SDfound;
  
  
  void setup()
  {
    Serial.begin(9600);
    bufferposition = 0;
  }
  
  void loop() 
  {
    if (SDfound == 0)
    {
      if (!SD.begin(53)) 
      {
        Serial.print("The SD card cannot be found");
        while(1);
      }
    }
    SDfound = 1;
    printFile = SD.open("Part1.txt");
  
  
    if (!printFile)
    {
      Serial.print("The text file cannot be opened");
      while(1);
    }
  
    while (printFile.available() &gt; 0)
    {
      character = printFile.read();
      if (bufferposition &lt; buffer_size - 1)
      {
        Buffer[bufferposition++] = character;
        if ((character == '\n'))
        {
          //new line function recognises a new line and moves on 
          Buffer[bufferposition] = 0;
          //do some action here
          bufferposition = 0;
        }
      }
  
    }
    Serial.println(Buffer);
    delay(1000);
  }
  </code></pre>
  
  <p>The function returns only the first line of the text file repeatedly.</p>
  
  <p><strong>My Question</strong></p>
  
  <p>How do I change the function to read a line of text, (with the hope to perform an action on such line, shown by "//do some action") and then move onto the next line in the subsequent loop, repeating this until the end of file has been reached?</p>
  
  <p>Hopefully this makes sense.</p>