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


Автор: Gamov 4.3.2008, 14:42
нужно написать прогу: данные копируются из созданного уже файла в другой(создаваемый мной). вот то что у меня получилось  smile 
не работает  smile  уважаемые гуру объясните почему!...

.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\comdlg32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\comdlg32.lib


  
.data
 
bufer DB "d:\file.txt"

file_name DB "d:\MyFile.dat",0

.data?
hFile HANDLE ?
SizeReadWrite DWORD ?

.code

start:
         
invoke CreateFile,ADDR file_name,\
                               GENERIC_READ or GENERIC_WRITE ,\
                               FILE_SHARE_READ or FILE_SHARE_WRITE,\

NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,\
                                   NULL
                      mov hFile,eax
     
invoke SetFilePointer,hFile,10h,0h,FILE_BEGIN

invoke WriteFile,hFile,ADDR bufer,2h,ADDR SizeReadWrite,0h   ;2h->MEMSIZE

                       invoke CloseHandle,hFile
                     

end start

Автор: dumb 4.3.2008, 16:41
Цитата(Gamov @  4.3.2008,  14:42 Найти цитируемый пост)
объясните почему
потому что "у тебя получилось" только "проредить" исходник - понять что-то ты и не пытался. с такими вопросами следует обращаться в "Центр помощи".

практическое(но не учебное) решение поставленной тобою задачи:
Код

.386
.model flat, stdcall
option casemap :none
include \masm32\INCLUDE\kernel32.inc
includelib \masm32\LIB\kernel32.lib
.data
file_in db "d:\file.txt",0
file_out db "d:\myfile.txt"
.code
start:
invoke CopyFile, ADDR file_in, ADDR file_out, 0
invoke ExitProcess,0
end start

Автор: Gamov 4.3.2008, 17:25
 smile  хех...насчет проредить - в точку! но вот понять я пытался  smile  
до этого прогал контроллеры (типа зажечь нужные диоды и.т.п),а с серьезным программированием дел не имел. Решение оказалось очень простое, а я думал что все гораздо сложнее. В следующий раз буду внимательнее искать функции в апи-справочнике. Спасибо.

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