Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2023, 20:54   #1
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
Вопрос Delphi 7: Вывести N диеркторий в заданной (без рекурсии вложенных папок)

В своём коде запутался.
Даже переформулировать его сюда проблема объяснять значения переменных.
Или переделывать под псевдо-язык.
Ищу рабочие примеры с правильным использованием FindFirst, FindNext.
hexor_boo вне форума Ответить с цитированием
Старый 28.08.2023, 22:57   #2
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
По умолчанию

Код:
 Procedure CategoriesTreeUpdate(strCategory : String);
  Var
   searchResult : TSearchRec;
   nodeRoot     : TTreeNode;
   i            : Integer;
   intLicLimit  : Integer;
   intUseLimit  : Integer;
  Begin

    Case frmMain.Tag Of //frmMain.Tag=1
     0 : intLicLimit:=3;
     1 : intLicLimit:=6;
     2 : intLicLimit:=4000000;
    End;

   intUseLimit:=0;

   frmMain.treeCategories.Items.Clear;
   nodeRoot:=frmMain.treeCategories.Items.Add(Nil, ProjectsDrive);

   //Inc(intUseLimit, 1);

    If (FindFirst(ProjectsDrive+'\*', faDirectory, searchResult)=0) Then
     Begin

       Repeat
        
         If ((searchResult.Attr Or faDirectory)=faDirectory) Then
          Begin
            If (searchResult.Name<>'.') And (searchResult.Name<>'..') Then
             Begin
              frmMain.treeCategories.Items.AddChild(
               nodeRoot, searchResult.Name
              );
              Inc(intUseLimit, 1);
             End;
          End;


        
       Until ((FindNext(searchResult)<>0) Or (intUseLimit=intLicLimit));

      FindClose(searchResult);
     End;

   frmMain.treeCategories.Items.GetFirstNode.Expand(True);

    If Not (strCategory='') Then
     Begin
      SelRec.Category:=strCategory;

       For i:=0 To frmMain.treeCategories.Items.Count-1 Do
        Begin
          If (frmMain.treeCategories.Items[i].Text=strCategory) Then
           Begin
            frmMain.treeCategories.Selected:=frmMain.treeCategories.Items[i];
            frmMain.treeCategories.SetFocus;
          End;
        End;

     End; //If Not (strCategory='') Then

  End;
Сам нашёл рабочее решение. Выводит intLicLimit папок в текущей директории.
hexor_boo вне форума Ответить с цитированием
Старый 29.08.2023, 08:04   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Флаги через ИЛИ проверять - что-то новое.
p51x вне форума Ответить с цитированием
Старый 29.08.2023, 13:04   #4
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Флаги через ИЛИ проверять - что-то новое.
Я где-то нашёл фрагмент исходника и подправил под свои цели.
Я туда внедрял проверку флага через ИЛИ, либо нет - не помню.
Однако решение работает и именно так, как нужно.
hexor_boo вне форума Ответить с цитированием
Старый 31.08.2023, 14:26   #5
hexor_boo
Разъяснятор
Форумчанин
 
Аватар для hexor_boo
 
Регистрация: 21.04.2022
Сообщений: 106
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Флаги через ИЛИ проверять - что-то новое.
Нужно через And - правильно понимаю?
hexor_boo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C++] Вычислить с помощью рекурсии сумму бесконечного рядя с заданной точностью. Magica Помощь студентам 0 08.11.2017 18:49
Вычисление заданной функции разложением ее в ряд с использованием рекурсии - C++ Fliiz Помощь студентам 1 20.09.2015 16:22
создание вложенных папок DCxDemo Общие вопросы Delphi 3 06.06.2012 09:44
запрет на отображение вложенных папок ilma55 PHP 6 18.01.2011 18:45
Вытащить файлы из вложенных папок ZORRO2005 Microsoft Office Excel 14 06.10.2008 23:04