Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Ассемлер.Работа с текстовыми файлами.

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Ассемлер.Работа с текстовыми файлами.
Имя
Сообщение << Старые топики   Новые топики >>
Ассемлер.Работа с текстовыми файлами. - 2010-12-07 15:58:58.900000   
sasha0123

Сообщений: 2
Оценки: 0
Присоединился: 2010-12-07 15:47:15.936666
Доброго времени суток!!!
Я написал код которий создет файл и записывает у него текст!
Мне надо вировнять текст по левому крайнему пределу!! как ето зделать ???
.8086 .MODEL SMALL .STACK 100h .DATA Count EQU 5 Buffer DB 80, ?, 80 DUP (' ') Handle DW ? PathName DB 'kn-26.txt',0 message1 DB 'Input data-&gt;',0dh,0ah,'$' message2 DB 'Error!!',0dh,0ah,'$' message3 DB 'Output data-&gt;',0dh,0ah,'$' CRLF DB 0dh,0ah,'$' .CODE .STARTUP LOCALS call CreateFile call WriteFile call CloseFile call OpenFile call ReadFile 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 ;---------------------------------------------------------------------------------------- ReadFile Proc Near lea dx,message3 mov ah, 9h int 21h @@1: xor si,si @@2: ; читання з файлу lea dx,buffer+2 add dx,si mov ah,3fh mov bx,handle mov cx,1 ; кількість символів для читання int 21h jc @@3 cmp ax,0 ;EOF? je @@4 inc si cmp Byte Ptr buffer[si+2-1], 0ah ; чи кінець рядка? jne @@2 ; виведення на екран mov ah,40h; функція виведення рядка lea dx,buffer+2 mov bx,01; дескриптор екрана mov cx,si int 21h jmp @@1 @@3: call Error @@4: ret ReadFile endp ;---------------------------------------------------------------------------------------- Error Proc Near mov ah,9h lea dx,message2 int 21h Error endp ;---------------------------------------------------------------------------------------- END
Post #: 1
RE: Ассемлер.Работа с текстовыми файлами. - 2010-12-07 16:08:17.006666   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
Не понял в каком смысле выровнять? Знак табуляции использовать может?
Post #: 2
RE: Ассемлер.Работа с текстовыми файлами. - 2010-12-07 17:56:58.883333   
sasha0123

Сообщений: 2
Оценки: 0
Присоединился: 2010-12-07 15:47:15.936666
я преполагаю что ето удалить все пробели в начале каждой строки….. или вначале каждой строки должно быть по 2-3 пробела
Post #: 3
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Ассемлер.Работа с текстовыми файлами.







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.