А чем Вам не подходит это решение???
У Вас проблема с подстановкой имен файлов в цикле???
А если так:
for(i=0; i<5; i++)
{
1) открыть файл ----
TFileStream *Stream = new TFileStream(ArrayOfYourFileNames[i], fmOpenRead);//Создаем поток
Byte *Buf;//Буфер для чтения
if ((Buf=(Byte*)malloc(Stream->Size))== NULL)//выделяем память под буфер данных
return;
2) считать данные в массив -----
Stream->Read(Buf, Stream->Size);
3) поработать с данными -----
Process(Buf);//Ваша обработка данных
4) закрыть файл -------
Stream->Free();//Освобождаем поток
if (realloc(Buf, Stream->Size)==NULL)//освобождаем память буфера
return;
}