Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Работа с файлами


Автор: ring0D 5.12.2005, 14:19
Здравствуйте, подскажите пожалуйста какими API пользоваться для работы с файлами (интересует создание/добавление/чтение на простом уровне). И как этими API правильно пользоваться ? Помогите пожалуйста... В Delphi было так просто...

Автор: Chingachguk 5.12.2005, 18:53
В асме все еще проще, если ты используешь WinApi.

Например:


Цитата


;
; Это начало небольшой консольной проги, которая работает с файликом
; свои результаты она сбрасывает в лог и на консоль одновременно
;


;
; Получаем хэндл консоли
;
invoke GetStdHandle,STD_OUTPUT_HANDLE
  mov  dword ptr hConsole,eax

;
; Пробуем открыть файл лога (дозапись)
;
.data
LogFileName  db "grandemu.log",0
.data?
LogDescr      dd ?
.code
  invoke CreateFile,offset LogFileName,GENERIC_WRITE,FILE_SHARE_WRITE+FILE_SHARE_READ,\
      0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0
  mov  LogDescr,eax          ; Save file descriptor
  inc  eax
  jnz  @@LogFileOpen

;
; Файл не открылся - его еще нет
; Create new log
;
  invoke CreateFile,offset LogFileName,GENERIC_WRITE,FILE_SHARE_WRITE+FILE_SHARE_READ,\
      0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
  mov  LogDescr,eax          ; Save file descriptor
  inc  eax
  jnz  @@LogFileOpen 
.data
OpenErrorMsg db "Log file (grandemu.log) not created !",0Ah,0
.code
  push offset OpenErrorMsg
  call Write_Log
  jmp  Exit
@@LogFileOpen:

; Устанавливаем указатель в конец файла (только что открытого)
  invoke SetFilePointer,LogDescr,0,NULL,FILE_END


Более подробно смотри на wasm.ru, примеры в комплекте MASM32.

Автор: Гость_Сергей 7.12.2005, 19:25
А как именно дописать в файл ? По-моему тут этого нет. В Дельфях было намного проще !

Автор: Chingachguk 7.12.2005, 19:57
Цитата
В Дельфях было намного проще !


Покажи мне как в Дельфях на win API делается это "намного проще".

А написать подпрограмму "AddBufferToEndOfFile" можно и на асме. Один раз написал - и все то же самое.

Автор: wiskas 22.12.2005, 02:33
Chingachguk
хорошо написал про работу с файлами ,спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)