Page 1 of 1

Работа с файлами

Posted: Sat Jun 18, 2011 1:24 pm
by XVilka
При работе с файлами не очень понял структуру FileInfo:

Code: Select all

+0: dword: 0 = номер подфункции 
 +4: dword: позиция в файле (в байтах) 
 +8: dword: 0 (зарезервировано под старший dword позиции) 
 +12 = +0xC: dword: сколько байт читать 
 +16 = +0x10: dword: указатель на буфер, куда будут записаны данные 
 +20 = +0x14: ASCIIZ-имя файла, правила формирования имён указаны в общем описании или 
 +20 = +0x14: db 0 
 +21 = +0x15: dd указатель на ASCIIZ-строку с именем файла
Это из вики. Что это за байт посередине между заголовоком и именем файла?
То есть нельзя использовать "align 4" ?

Re: Работа с файлами

Posted: Sat Jun 18, 2011 2:16 pm
by Jaeger
Если я правильно понял, это означает, что либо имя файла вписывается в структуру, начиная с 20 байта, либо в 20-й байт кладётся 0 (конец строки), а следующие 4 байта занимает указатель на строку. Тоже сейчас пытаюсь работать с этой функцией.

Re: Работа с файлами

Posted: Sat Jun 18, 2011 3:57 pm
by Mario
Все именно так.

Re: Работа с файлами

Posted: Sat Jun 18, 2011 4:03 pm
by XVilka
А, то есть для коротких имен можно напрямую вписывать строку, а для длинных приходиться использовать указатель?

Re: Работа с файлами

Posted: Sat Jun 18, 2011 4:05 pm
by Gluk
XVilka, то есть для любых имён можно напрямую вписывать строку, а для любых можно использовать указатель.

Re: Работа с файлами

Posted: Sat Jun 18, 2011 4:06 pm
by Mario
Юморнул.

XVilka
70-я функция работает с длинными именами всегда если они есть.