Сейчас на форуме: rmn, Magister Yoda, vasilevradislav, tyns777, zombi-vadim (+5 невидимых)

 eXeL@B —› Программирование —› Как организовать поиск файла
Посл.ответ Сообщение


Ранг: 110.8 (ветеран), 104thx
Активность: 0.090.01
Статус: Участник

Создано: 29 июля 2008 09:51 · Поправил: Модератор
· Личное сообщение · #1

есть такая процедурка

Dir db "C:\*.*", 0
FindMask db "\*.*", 0

FindMagicFiles proc uses ebx edx ecx esi edi DirPath:dword
local FileAttrib: WIN32_FIND_DATA
local FindedFileHandle:dword

invoke FindFirstFile, DirPath, addr FileAttrib
mov FindedFileHandle, eax
.while eax != 0
.if FileAttrib.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY
invoke lstrlen, DirPath
mov edi, DirPath
lea edi, dword ptr ds:[edi + eax - 3]
lea esi, dword ptr ds:[FileAttrib.cFileName]
invoke lstrlen, esi
mov ecx, eax
inc ecx
rep movsb
mov ebx, eax
dec edi
invoke lstrcat, edi, offset FindMask
invoke FindMagicFiles, DirPath
.endif
push eax
invoke FindNextFile, FindedFileHandle, addr FileAttrib
.endw
ret
FindMagicFiles Endp

по идее должна перебирать все папки и подпапки (поиск самих файлов пока не организовал)
по данной маске на диске ц папки и файлы находит исправно, но применительно для дочерних папок FindFirstFile что-то возвращает в локальную переменную, но при попытки получить имя дочерней папки возвращает какую-то абраказябру

В чём не прав, знатоки помогите



Ув. Модераторы, подправьте название темы, пропустил слово поиск




Ранг: 271.6 (наставник), 2thx
Активность: 0.30
Статус: Участник

Создано: 29 июля 2008 09:57
· Личное сообщение · #2

возьми исходник любого виря. там все уже сделанно.
vx.netlux.org

-----
iNTERNATiONAL CoDE CReW





Ранг: 1288.1 (!!!!), 273thx
Активность: 1.290
Статус: Участник

Создано: 29 июля 2008 10:22
· Личное сообщение · #3

поправил тему




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 29 июля 2008 20:35
· Личное сообщение · #4

Rainbow самое грамотное, что ты можешь сделать - это загрузить в отладчик и пошагову посмотреть, что
выполняется или же не выполняется.

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 158.5 (ветеран), 219thx
Активность: 0.120.01
Статус: Участник

Создано: 31 июля 2008 11:54
· Личное сообщение · #5

Рекурсии FOREVER!

-----
One death is a tragedy, one million is a statistic.





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 31 июля 2008 12:15
· Личное сообщение · #6

=) не понятно ... еще раз обьясни. Перефразируй.

3cd3_31.07.2008_CRACKLAB.rU.tgz - Tree File Manager.rar

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 62.5 (постоянный), 2thx
Активность: 0.050
Статус: Участник

Создано: 08 сентября 2008 16:58
· Личное сообщение · #7

Вот исходники файлменеджера, от автора АсмЭдита.
mak а где ты такие скроллбары взял?


c1d7_08.09.2008_CRACKLAB.rU.tgz - fileman.zip




Ранг: 81.2 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 08 сентября 2008 17:23
· Личное сообщение · #8

при использовании рекурсии для поиска сильно "глубоко" будет
достаточно большое испоьлзование оперативы,но написать с её использование
вроде бы само просто ...

так что надо трейсить и думать гиде баГ



Ранг: 62.5 (постоянный), 2thx
Активность: 0.050
Статус: Участник

Создано: 08 сентября 2008 20:55
· Личное сообщение · #9

NicknamES пишет:
при использовании рекурсии для поиска сильно "глубоко" будет


Но ведь есть же алгоритмы нечто среднее между пузырьковыми и рекурсивными.
И память не так сильно кушают.
В общем топикстартеру, ИМХО если он этим интересуется надо Кнута почитать.
У него как раз один из 3х томов посвящен алгоритмам поиска.


 eXeL@B —› Программирование —› Как организовать поиск файла
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати