SASGIS - SAS.Планета
View Issue Details
0002674SAS.Планета[All Projects] Багpublic05-04-2015 19:2407-04-2015 17:28
vasketsov 
vdemidov 
normalminorhave not tried
resolvedfixed 
141212 
150915150915 
0002674: Ошибка в TFileNameIteratorInFolderByMask.Next
TFileNameIteratorInFolderByMask.Next

if FValidFindData then begin
repeat
if IsNeedProcess(FFindFileData) then begin
AFileName := FFolderNameFromRoot + FFindFileData.cFileName;
Result := True;
FValidFindData := Windows.FindNextFileW(FFindHandle, FFindFileData);
Break;
end;
until not FValidFindData;

Если IsNeedProcess возвращает false - FValidFindData вообще не меняется.
Получается бесконечный цикл.
ps. Налетел на это при попытке добавить дополнительное условие фильтрации файлов по размеру.
No tags attached.
Issue History
05-04-2015 19:24vdemidovNew Issue
05-04-2015 19:25vdemidovReportervdemidov => vasketsov
05-04-2015 19:25vdemidovStatusnew => confirmed
05-04-2015 19:26vdemidovNote Added: 0015533
07-04-2015 17:28vdemidovStatusconfirmed => resolved
07-04-2015 17:28vdemidovFixed in Version => 150915
07-04-2015 17:28vdemidovResolutionopen => fixed
07-04-2015 17:28vdemidovAssigned To => vdemidov

Notes
(0015533)
vdemidov   
05-04-2015 19:26   
Мда. Похоже код должен быть вот такой:

  if FValidFindData then begin
    repeat
      if IsNeedProcess(FFindFileData) then begin
        AFileName := FFolderNameFromRoot + FFindFileData.cFileName;
        Result := True;
      end;
      FValidFindData := Windows.FindNextFileW(FFindHandle, FFindFileData);
    until (not FValidFindData) or Result ;
  end;