А кто-нибудь использует рекурсию в MQL4 ? - страница 3

 

Решается без рекурсии (мы не знаем, какова максимальная вложенность папок и сколько места осталось в стеке потока; явное создание стека для поиска выглядит логичнее).

Уважаемый lea!

Вот, для примера процедура, написанная, правда не на MQL, а на VB, в ней идет вызов самой себя при нисходящем обходе каталогов:


Private Sub CheckFolder(objFolder As Object)
....Dim objSubFolder As Object, objFile As Object

....For Each objSubFolder In objFolder.SubFolders
........For Each objFile In objSubFolder.Files
............DoFile_New objFile.path
........Next objFile

........ CheckFolder objSubFolder
....Next objSubFolder
End Sub


Почему-то не сохраняет форматирование, отступы :(, сделал вместо пробелов точки - так хоть видно структуру кода


Не могли бы Вы чуть детальнее пояснить создание стека - чисто для самообразования :)

 
falkov писал(а) >>

Не могли бы Вы чуть детальнее пояснить создание стека - чисто для самообразования :)

https://ru.wikipedia.org/wiki/%D0%A1%D1%82%D0%B5%D0%BA - в википедии доступно объясняется что такое стек. В vb6 есть возможность создавать классы, так что проблем быть не должно. Реализацию, к сожалению подкинуть не смогу.

p.s. вопросы, не относящиеся к теме лучше писать в личку.

 

Нет, что такое стек, очередь, LIFO,FIFO, я знаю хорошо, еще на СМ4, Электронике60 помню PUSH и POP, когда-то обслуживал :)))


Я имел в виду кусочек кода для реализации той задачи, что я привел в пример - обход каталогов.

Так сказать, конкретную реализацию, где было-бы видно, что такой способ эффективен.


Ну, нет, так и нет. Вы правы, что это уже отклонение от темы.


С уважением, и т.д.

Причина обращения: