SD-card reader

Hi,
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;
    sd.service();
  }
}


void ReadFile(char *file)
{
  FIL fsrc;     //file objects
  FRESULT res;  //result code
  char buf[32]; //file buffer
  UINT rd;      //file R/W count
  
  lcd.clear(RGB(255,255,255));

  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));
      return;
    }
    f_close(&fsrc);
  }

  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
  Serial.begin(38400); 

  //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
  sei();

  //clear screen
  lcd.clear(RGB(255,255,255));
  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.clear(RGB(0,255,0));
    lcd.drawTextPGM(5, 5, PSTR("Read file..."), 1, RGB(255,255,255), RGB(0,255,0));
    ReadFile("test.txt");
    sd.unmount();
  }
  else
  {
    Serial.println("No card found!");
    lcd.clear(RGB(255,0,0));
    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.