function [idxFile] = SaveCoordFromFData_Intervalo (diaInicial, diaFinal, movimentos, outFileDir, comInfo, qualMat)
% 
% movimentos: é um vector em que a primeira posição é o passo e a segunda o número de dias (úteis) a utilizar
%
% Exemplo:
%   idxFile = SaveCoordFromFData_Intervalo ("01-Jan-1989", "31-Dec-1989", [1,15], "/db/Economia/DataOrg2026_Testes/", 1, 148);
%
% ATENÇÃO: Antes de executar este ficheiro fazer na linha de comandos:
%     global Data1
%     load("/db/Economia/DataOrg2026/NY_19890420__20090420__319_CtR_Rm000s.mat")
% ou
%     load("/db/Economia/DataOrg2026/NY_19851025__20251025__148_CtR_Rm000s.mat")
%

  if qualMat == 319
    fileData1 = "/db/Economia/DataOrg2026/NY_19890420__20090420__319_CtR_Rm000s.mat";
  elseif qualMat == 148
    fileData1 = "/db/Economia/DataOrg2026/NY_19851025__20251025__148_CtR_Rm000s.mat";
  else
    fprintf("\n   ***** 'qualMat' só pode tomar os valores '148' ou '319'\n\n");
    idxFile = 0
    return
  end
  
  Meses = {'jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec'};
  passo = movimentos(1);
  quantos = movimentos(2);
  sInfo = [comInfo, passo, quantos];
  %fprintf("Passo: %d ; Quantos: %d\n", passo, quantos);

  global Data1

  fprintf("fileData1: %s\n", fileData1)
  if ~ismember('Data1', who('global'))
    fprintf("Não leu o 'Data1', por isso, vai usar '%s'\n", fileData1);
    load(fileData1);
    %load /db/Economia/DataOrg2026/NY_19851025__20251025__148_CtR_Rm000s.mat
  end

  [ diaI, diaF ] = getTestDate_WithLen(Data1, diaInicial, quantos, 0);
  %fprintf("diaInicial: %s ; quantos: %d ; diaI: %d ; diaF: %d\n", diaInicial, quantos, diaI, diaF);
  if (diaF < 0)
    fprintf("***** Data inicial é anterior ao início dos dados\n")
    return
  end
  if (diaF > Data1.Date2)
    return
  end
  
  [ x1, diaFim ] = getTestDate_WithLen(Data1, diaFinal, 1, 0);
  if (diaFim < 0)
    fprintf("***** Erro: Data final maior do que a última cotação\n");
    return
  end
  %fprintf("diaI: %d ; diaF: %d ; DiaFim: %d\n", diaI, diaF, diaFim);

  %[outFileDir2, x1, x2] = fileparts(outFileDir);
  %endFileDir = sprintf("NY_Idx_Len%2.2d_%s_%s.txt", quantos, diaInicial, diaFinal);

  m1 = find(ismember(Meses,lower(extractBetween(diaInicial,4,6))));
  m2 = find(ismember(Meses,lower(extractBetween(diaFinal,4,6))));
  strDate1 = sprintf("%s%2.2d%s", extractBetween(diaInicial,8,11), m1, extractBetween(diaInicial,1,2));
  strDate2 = sprintf("%s%2.2d%s", extractBetween(diaFinal,8,11), m2, extractBetween(diaFinal,1,2));
  endFileDir = sprintf("NY_Idx_%s_%s_Len%3.3d.idx", strDate1, strDate2, quantos);

  lastChar = extractBetween(outFileDir,strlength(outFileDir),strlength(outFileDir));
  if ispc
    if not(strcmp(lastChar, '\') == 1)
      outFileDir = outFileDir + '\';
    end
  elseif not(ispc)
    if not(strcmp(lastChar, '/') == 1)
      outFileDir = outFileDir + '/';
    end
  end
  idxFile = outFileDir + endFileDir;
  
  f1 = fopen(idxFile, "wt");
  %diaMove = diaI;
  while ((diaI <= diaFim) && (diaI > 0))
    diaIstr = Data1.sDate(diaI);
    ultimo = diaI + quantos - 1;
    diaFstr = Data1.sDate(ultimo);
    %fprintf("diaI: %d ; \n", diaI);
    if ultimo > Data1.Date2
      break
    end
    %fprintf("%s(%d) ==> %s(%d)\n", string(diaIstr), diaI, string(diaFstr), diaF);
    
    %[ diaI, diaF ] = getTestDate_WithLen (Data1, Data1.sDate(diaF+1), quantos, 0);
    %fprintf("outFileDir: %s\n", outFileDir);
    [dimC, diasIF, fname] = SaveCoordFromFData(diaIstr, diaFstr, outFileDir, sInfo);
    fprintf(f1, '%s|%s|%s\n', string(diaIstr), string(diaFstr), fname);
    diaI = diaI + passo;
    %break
    %fprintf("diaI: %d\n", diaI)
  end
  fclose(f1);

  fprintf("\nIndice dos ficheiros: %s\n", idxFile)
%[dimC, diasIF, fname] = SaveCoordFromFData (diaIstr, diaFstr, outFileDir, comInfo)

end
