Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2012, 21:42   #1
777user777
Пользователь
 
Аватар для 777user777
 
Регистрация: 29.11.2010
Сообщений: 38
Вопрос Записать в файл

у меня вот такой вопрос. нужно открыть файл,и записать туда данные,по определённому адресу. как это сделать?
777user777 вне форума Ответить с цитированием
Старый 03.02.2012, 22:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Операционка какая?
Цитата:
по определённому адресу
Всмысле по указанному смещению относительно некой опорной точки (предполагается начало файла)?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.02.2012, 22:20   #3
777user777
Пользователь
 
Аватар для 777user777
 
Регистрация: 29.11.2010
Сообщений: 38
По умолчанию

пишу под windows
Цитата:
Сообщение от Stilet Посмотреть сообщение
Всмысле по указанному смещению относительно некой опорной точки (предполагается начало файла)?
да
777user777 вне форума Ответить с цитированием
Старый 03.02.2012, 22:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

ХМ...
Вот из хелпа МАСМ:
Код:
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
    include \masm32\include\masm32rt.inc
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

comment * -----------------------------------------------------
                        Build this  template with
                       "CONSOLE ASSEMBLE AND LINK"
        ----------------------------------------------------- *

    .code

start:

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

    call main

    exit

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

main proc

    LOCAL cloc  :DWORD
    LOCAL wcnt  :DWORD
    LOCAL fname :DWORD
    LOCAL txt   :DWORD
    LOCAL hFile :DWORD

    sas fname,"MyFile.txt"              ; assign strings to local variables
    sas txt,"1234567890"

    push esi
    mov esi, 50                         ; use ESI as a loop counter

    .if rv(exist,fname) != 0            ; test if file exists
      mov hFile, fopen(fname)           ; open it if it does
    .else
      mov hFile, fcreate(fname)         ; otherwise create a new file
    .endif

    mov cloc, fseek(hFile,0,FILE_END)   ; set the file pointer to the end

  @@:
    mov wcnt, fwrite(hFile,ADDR txt,len(txt))
    sub esi, 1
    jnz @B

    fclose hFile

    ret

main endp

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

end start
Понял в какую строну копать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.02.2012, 19:10   #5
Илья01
Пользователь
 
Регистрация: 30.12.2010
Сообщений: 14
По умолчанию

Здравствуйте, меня тоже интересует этот вопрос. Я пишу под Windows. Код компилируется, но не работает. Скажите пожалуйста, этот код под DOS, или я что-то напутал?
Код:
          .386
        .model flat,stdcall
  option   casemap:none
                        include C:\masm32\INCLUDE\WINDOWS.INC
                        include C:\masm32\INCLUDE\KERNEL32.INC 
                        include C:\masm32\INCLUDE\USER32.INC
                        include   C:\masm32\INCLUDE\SHELL32.INC                          
                        include C:\masm32\INCLUDE\ADVAPI32.INC 
                        include   C:\masm32\INCLUDE\GDI32.INC       
                        include    C:\masm32\INCLUDE\comdlg32.inc                                    
                        include  my.inc
                        
                        includelib C:\masm32\lib\masm32.lib     
                         includelib C:\MASM32\LIB\ole32.lib                                                                                                         
                         includelib C:\masm32\lib\comdlg32
                        includelib C:\masm32\lib\user32.lib
                        includelib  C:\masm32\lib\shell32.lib
                        includelib C:\masm32\lib\gdi32.lib
                        includelib C:\masm32\lib\kernel32.lib                
                        includelib C:\masm32\lib\user32.lib
                        includelib C:\masm32\lib\advapi32.lib                            
;###########################################################
MAIN_WINDOW_PROC     PROTO   :DWORD ,  :DWORD , :DWORD ,  :DWORD 														
;##########################################################
public    HINST   
;###########################################################
;data--data--data--data--data--data--data--data--data--data--     PROC
;----------------------------------------------------------------------------------------------
.DATA
HINST               DWORD      NULL
HWND_WIN        DWORD     NULL   ;дескриптор
;-
String_CLASS                  DB    "MY_WINDOW",0  
String_CAPTION               DB  "WRITE FILE",0
;-
String_READ              DB   "READ_FILE",0
String_WRITE             DB   "WRITE_FILE",0
String_SIZE                 DB   "SIZE FILE",0

BUTTON_CLASS                DB  "BUTTON",0
EDIT_CLASS                       DB  "EDIT",0
;-
H_FILE                              DWORD    Null
Ptr_MEMORY               DWORD    0
Size_FILE                         DWORD    Null
Size_DATA                         DWORD    Null

OFN_STRUCT      OPENFILENAME      <0>
FILTR_FILE       DB          "TEXT",0,"*.txt",0,"*.HTML",0,"*.html",0,0,0
Name_FILE       DB    "file_test.txt" ,0

MSG_WIN        MSG      <0>
;-
NULL_STRING               DB  0 , 0 , 0 , 0
;-
FORMAT   DB       "%d",0
CONTENER         DB    256   dup (0)
;##############################################################
;code--code--code--code--code--code--code--code--code--code-- PROC
;--------------------------------------------------------------------------------------------------
.CODE  
START:
   sas fname,"C:\MyFile.txt"              ; assign strings to local variables
    sas txt,"1234567890"

    push esi
    mov esi, 50                         ; use ESI as a loop counter

    .if rv(exist,fname) != 0            ; test if file exists
      mov hFile, fopen(fname)           ; open it if it does
    .else
      mov hFile, fcreate(fname)         ; otherwise create a new file
    .endif

    mov cloc, fseek(hFile,0,FILE_END)   ; set the file pointer to the end

  @@:
    mov wcnt, fwrite(hFile,ADDR txt,len(txt))
    sub esi, 1
    jnz @B

    fclose hFile
EXIT:     
             invoke               ExitProcess        ,       Null


END  START
Илья01 вне форума Ответить с цитированием
Старый 04.02.2012, 21:36   #6
Goodwin98
equ asm
Участник клуба
 
Аватар для Goodwin98
 
Регистрация: 02.05.2009
Сообщений: 1,605
По умолчанию

Это какая-то помесь Си и асма о_О
Какой вопрос - такой ответ. Не забываем пользоваться поиском, гуглом.
Помощь в выполнении работ по ассемблеру ICQ:2725322O4
Goodwin98 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Символьный файл F. Записать в файл G компоненты файла F в обратном порядке,сначала все нечетные, затем чётные. Паскаль. ICE_LADY Помощь студентам 0 08.06.2011 17:32
Записать в Файл sanek_next Помощь студентам 0 19.10.2010 19:54
Записать в файл... Дмитрий ВМК Общие вопросы Delphi 1 26.04.2010 17:45
Записать структуру в файл iLLUMIN Общие вопросы C/C++ 10 28.02.2010 23:57
Как записать файл в файл программы? Хамяг Общие вопросы Delphi 2 02.11.2008 16:01