Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование FindFirstFile и Find NextFile 
V
    Опции темы
Бор
Дата 25.7.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 25.7.2006

Репутация: нет
Всего: нет



Я начинающий програмист в этой области - чайник полный! Поглядел в MSDN за этими 2-мя  Windows API функциями и толком ничего не могу сделать. Хочу сделать прогу, выводящую на экран содержимое какой-то определенной папки, например C:\abc (уже введено в программе). С выводом на экран будет все нормально, а как пользоваться этими 2-мя функиями - ничего не пойму. Вот мой код:
------------------------------------------------------------------------------------------------------------------------------------------------
.386
.model flat, stdcall
include c:\masm615\include\kernel32.inc
MAX_PATH=70

FILETIME STRUCT 
dwLowDateTime DWORD ?
dwHighDateTime DWORD ?
FILETIME ENDS 


find_data STRUCT
dwFileAttributes   DWORD  ?
ftCreationTime     FILETIME <>
ftLastAccessTime   FILETIME  <>
ftLastWriteTime    FILETIME   <>
nFileSizeHigh      DWORD      ?
nFileSizeLow       DWORD       ?
dwReserved0        DWORD       ?
dwReserved1        DWORD        ?
cFileName          BYTE MAX_PATH DUP(?)
cAlternateFileName BYTE 14 DUP(?)
find_data ENDS

.data
adress BYTE "C:\abc",0
adress_file find_data <>
fHandle DWORD ?
name_find BYTE "*.*",0

.code
main PROC
invoke SetCurrentDirectory,ADDR adress

invoke FindFirstFile,ADDR name_find, ADDR adress_file
mov fHandle,eax
invoke FindNextFile,fHandle,ADDR adress_file
invoke FindClose, fHandle
invoke ExitProcess, 0
main ENDP

end main

--------------------------------------------------------------------------------------------------------------------------------------------------
ps: На экран не выводил. Просматривал все через отладчик. - в поле adress_file.cFileName вообще все пусто!
Прошу, помогите! Не говорите мне, что я ламер, что не заметил эту ошибку. Просто подскажите ... Пасибо. 
PM MAIL   Вверх
Kagor
Дата 25.7.2006, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Debian user
****


Профиль
Группа: Экс. модератор
Сообщений: 2946
Регистрация: 28.2.2003
Где: Королевство Кривых

Репутация: нет
Всего: 85



Модератор: Перемещено из Новости IT/Новости из мира ASM. 


--------------------
Disassemble Your life and get the key!
PM ICQ GTalk Jabber   Вверх
dumb
Дата 26.7.2006, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


sceloglauxalbifacies
****


Профиль
Группа: Экс. модератор
Сообщений: 2929
Регистрация: 16.6.2006

Репутация: 2
Всего: 158



Цитата(Бор @  25.7.2006,  22:38 Найти цитируемый пост)
Просматривал все через отладчик. - в поле adress_file.cFileName вообще все пусто!

там, кстати, не пусто. там должны быть точки(2e). после FindFirst - одна точка, после FindNext - две... что они означают, рассказывать не надо? (имена это, в общем)

ок, ближе к телу:
Код

.386
.model flat, stdcall
option  casemap: none   ; case sensitive

include \masm32\include\kernel32.inc
include \masm32\include\windows.inc

includelib \masm32\lib\kernel32.lib

.data
find_rec WIN32_FIND_DATA <>
;fHandle DWORD ?
name_find BYTE "C:\hd\*.*",0

.code

main PROC

invoke FindFirstFile,ADDR name_find, ADDR find_rec
inc eax
jz error
dec eax
mov ebx,eax
next:
;
; здесь вывод имени файла
;
invoke FindNextFile,ebx,ADDR find_rec
or eax, eax
jnz next
invoke FindClose, ebx
error:
invoke ExitProcess, 0
main ENDP

end main
 
PM MAIL   Вверх
Бор
Дата 26.7.2006, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 25.7.2006

Репутация: нет
Всего: нет



Пасибо, ща проверю код! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.1068 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.