View Issue Details

IDProjectCategoryView StatusLast Update
0002674SAS.ПланетаБаг / Bugpublic07-04-2015 17:28
Reportervasketsov Assigned Tovdemidov  
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Product Version141212 
Target Version150915Fixed in Version150915 
Summary0002674: Ошибка в TFileNameIteratorInFolderByMask.Next
DescriptionTFileNameIteratorInFolderByMask.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. Налетел на это при попытке добавить дополнительное условие фильтрации файлов по размеру.
TagsNo tags attached.

Activities

vdemidov

05-04-2015 19:26

manager   ~0015533

Мда. Похоже код должен быть вот такой:

  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;

Issue History

Date Modified Username Field Change
05-04-2015 19:24 vdemidov New Issue
05-04-2015 19:25 vdemidov Reporter vdemidov => vasketsov
05-04-2015 19:25 vdemidov Status new => confirmed
05-04-2015 19:26 vdemidov Note Added: 0015533
07-04-2015 17:28 vdemidov Status confirmed => resolved
07-04-2015 17:28 vdemidov Fixed in Version => 150915
07-04-2015 17:28 vdemidov Resolution open => fixed
07-04-2015 17:28 vdemidov Assigned To => vdemidov
08-08-2025 13:22 zed Category Баг => Баг / Bug