SD-card reader

I try to understand an example-file for my SD-Card reader. I can not see a loop in this example. Does that mean it reads 32 chars just once and displays it? How can I read longer files?

//mSD-Shield: OpenFileDemo (Display + SD-Card)

#include <MI0283QT2.h>
#include <SDcard.h>

MI0283QT2 lcd;
SDcard sd;

ISR(TIMER2_OVF_vect) //Timer 2 Interrupt, called every 1ms
  static uint8_t count=1;

  TCNT2 -= 250; //1000 Hz

  if(--count == 0) //100 Hz
    count = 10;

void ReadFile(char *file)
  FIL fsrc;     //file objects
  FRESULT res;  //result code
  char buf[32]; //file buffer
  UINT rd;      //file R/W count

  res = f_open(&fsrc, file, FA_OPEN_EXISTING | FA_READ);
  if(res == FR_OK)
    res = f_read(&fsrc, buf, sizeof(buf), &rd);
    if(res == FR_OK)
      if(rd >=sizeof(buf))
        rd = sizeof(buf)-1;
      buf[rd] = 0;
      lcd.drawText(5, 5, buf, 1, RGB(0,0,0), RGB(255,255,255));

  Serial.println("File not found!");
  lcd.drawTextPGM(5, 5, PSTR("File not found!"), 1, RGB(0,0,0), RGB(255,255,255));

void setup()
  //init Serial port

  //init LCD
  Serial.println("Init Display...");
  lcd.init(4); //spi-clk = Fcpu/4
  lcd.led(60); //backlight 0...100%

  //init SD-Card
  Serial.println("Init SD-Card...");
  sd.init(4); //spi-clk = Fcpu/4

  //init Timer2 for SD service routine
  TCCR2B  = (1<<CS22); //clk=F_CPU/64
  TCNT2   = 0x00;
  TIMSK2 |= (1<<TOIE2); //enable overflow interupt
  //interrupts on

  //clear screen
  lcd.drawTextPGM(5, 5, PSTR("Mount card..."), 1, RGB(0,0,0), RGB(255,255,255));

  if(sd.mount() == 0)
    Serial.println("Read file...");
    lcd.drawTextPGM(5, 5, PSTR("Read file..."), 1, RGB(255,255,255), RGB(0,255,0));
    Serial.println("No card found!");
    lcd.drawTextPGM(5, 5, PSTR("No card!"), 1, RGB(255,255,255), RGB(255,0,0));

void loop()


change the right if => while

Do I have a position-counter or how do I read e.g. wordwise?

Maybe I did not make clear enough, what I am trying to do. I try to read a settings-file from a sd into the arduino. I could read the file bit-wise (or buffer-wise), processing every incoming part.

But I would prefer to call a function "readNextItem" wich returns the next String (until " "). Similar to strtok(file, " "). Is this possible or do I have to read a file step by step from the beginning to the end? This would mean that I first have to store the file in a huge variable and read it from there.