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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2010, 00:00   #1
sasha0123
 
Регистрация: 03.12.2010
Сообщений: 3
Печаль Создание и редактирование текстового файла

Доброго времени суток!
У меня вот такая проблемка я с помощую програмы создал текстовый файл записал в него текст.
Мне надо вировнять текст по крайней левому пределу и зделать етот файл только для чтения.
Вот код программы:
Код:
.8086
.MODEL SMALL
.STACK 100h
.DATA
Count EQU 5
Buffer DB 80, ?, 80 DUP (' ')
Handle DW ?
PathName DB 'kn-26.docx',0
message1 DB 'Input data->',0dh,0ah,'$'
message2 DB 'Error!!',0dh,0ah,'$'
message3 DB 'Output data->',0dh,0ah,'$'
CRLF DB 0dh,0ah,'$'
.CODE
.STARTUP
LOCALS
call CreateFile
call WriteFile
call CloseFile
.EXIT 0
;----------------------------------------------------------------------------------------
CreateFile Proc Near
mov ah,3ch
mov cx,0 ; атрибут=0 (звичайний файл)
lea dx,pathname
int 21h
jc @@1
mov handle,ax ; дескриптор файла
ret
@@1: call Error
ret
CreateFile endp
;----------------------------------------------------------------------------------------
WriteFile Proc Near
lea dx,message1
mov ah, 9h
int 21h
mov cx,count
@@1: push cx
; очищення буфера
mov al,' '
push ds
pop es
mov di,offset buffer+2
mov cx,80
cld
rep stosb
; читання рядка з клавіатури
mov ah,0ah
lea dx,buffer
int 21h
; перехід на новий рядок
mov ah,9h
lea dx,CRLF
int 21h
; кінець рядка в буфері є символом CR з кодом 0dh
; дописуємо символ LF (0ah) після символа 0dh (отримуємо перехід на новий рядок)
mov al,0ah
push ds
pop es
mov di,offset buffer+2
xor bx,bx
mov bl, Byte Ptr [buffer+1] ; реальна кількість символів
add di,bx
inc di
stosb
; si – кількість символів + 2 (0dh,0ah)
mov si,bx
add si, 2
; записати рядок у файл
mov ah,40h
mov bx,handle
mov cx, si
lea dx,buffer+2
int 21h
jnc @@2
call Error
@@2: pop cx
loop @@1
ret
WriteFile endp
;----------------------------------------------------------------------------------------
CloseFile Proc Near
mov ah,3eh
mov bx,handle
int 21h
ret
CloseFile endp
;----------------------------------------------------------------------------------------
OpenFile Proc Near
mov ah,3dh
mov al,0; режим: 0- read, 1- write, 2-read/write
mov cx,0; атрибут файла
lea dx,pathname
int 21h
jc @@1
mov handle,ax
ret
@@1: call Error
ret
OpenFile endp
;----------------------------------------------------------------------------------------
Error Proc Near
mov ah,9h
lea dx,message2
int 21h
Error endp
;----------------------------------------------------------------------------------------
END
sasha0123 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание бланка заказа из текстового файла Melkiy25 Microsoft Office Excel 3 23.03.2010 10:18
создание текстового файла shaman1 Общие вопросы C/C++ 1 09.02.2010 16:13
Создание текстового RPG KORN Софт 3 15.07.2008 09:21
Delphi Редактирование текстового файла Starscream Общие вопросы Delphi 11 18.02.2008 17:15
Типизированные файлы.Создание, удаление, редактирование, сортировка записей типизированного файла.Паскаль Студент Шиза Помощь студентам 6 08.12.2007 13:41