Счетчик событий. Как организовать?

 
Суть такая. В int deinit() помещен код, каторый при выключении индикатора сбразывает все данные из 4-х буферов в файл на диск. Код ниже.
int deinit() {
   for(shift=Bars-1; shift>=0; shift--){
   handle=FileOpen(FileName, FILE_READ|FILE_WRITE, '\t'); 
      if(handle>0){ 
         FileSeek(handle, 0, SEEK_END);
         if (ExtMapBuffer2[shift]!=0)
         FileWrite(handle,DoubleToStr(ExtMapBuffer4[shift],Digits), ... ,DoubleToStr(ExtMapBuffer2[shift],Digits)); 
         if (ExtMapBuffer[shift]!=0)
         FileWrite(handle,DoubleToStr(ExtMapBuffer3[shift],Digits), ... ,DoubleToStr(ExtMapBuffer[shift],Digits));
         FileClose(handle); 
         }
      }	
   }



Что нужно еще дописать вместо "..." чтобы в файле были следующие строки:

ExtMapBuffer4[shift],1,ExtMapBuffer2[shift]
ExtMapBuffer4[shift],2,ExtMapBuffer2[shift]
ExtMapBuffer4[shift],3,ExtMapBuffer2[shift]
ExtMapBuffer4[shift],4,ExtMapBuffer2[shift]

т.е. нужно пронумеровать 1,2,3,4, и т.д.

Пробывал создавать цикл в цикле, ничего не вышло, если кто знает подскажите.

 
Переменную-счетчик ввести проще всего
 
Переменную-счетчик ввести проще всего

Если бы все было так просто, я бы не спросил. Сложность в том что счетчик можно сделать не вопрос, но сохранение всех элементов почемуто происходит такое колличество раз сколько указано в счетчике.
 
Если все не так просто, тогда вообще не представляю, чего надо было. Так не пойдет что-ли?
int deinit() {
   int cnt=1;
   for(shift=Bars-1; shift>=0; shift--){
   handle=FileOpen(FileName, FILE_READ|FILE_WRITE, '\t'); 
      if(handle>0){ 
         FileSeek(handle, 0, SEEK_END);
         if (ExtMapBuffer2[shift]!=0) {
            FileWrite(handle,DoubleToStr(ExtMapBuffer4[shift],Digits),cnt,DoubleToStr(ExtMapBuffer2[shift],Digits)); 
            cnt++;
            }
         if (ExtMapBuffer[shift]!=0) {
            FileWrite(handle,DoubleToStr(ExtMapBuffer3[shift],Digits),cnt,DoubleToStr(ExtMapBuffer[shift],Digits));
            cnt++;
            }
         FileClose(handle); 
         }
      }
   }
 
Если все не так просто, тогда вообще не представляю, чего надо было. Так не пойдет что-ли?
int deinit() {
   int cnt=1;
   for(shift=Bars-1; shift>=0; shift--){
   handle=FileOpen(FileName, FILE_READ|FILE_WRITE, '\t'); 
      if(handle>0){ 
         FileSeek(handle, 0, SEEK_END);
         if (ExtMapBuffer2[shift]!=0) {
            FileWrite(handle,DoubleToStr(ExtMapBuffer4[shift],Digits),cnt,DoubleToStr(ExtMapBuffer2[shift],Digits)); 
            cnt++;
            }
         if (ExtMapBuffer[shift]!=0) {
            FileWrite(handle,DoubleToStr(ExtMapBuffer3[shift],Digits),cnt,DoubleToStr(ExtMapBuffer[shift],Digits));
            cnt++;
            }
         FileClose(handle); 
         }
      }
   }



Да все оказалось намного проще чем мне думалось. Спасибо за помощь. А я такой огород нагородил, что запутался в конец.
Причина обращения: