lea dx, pathf1
mov al,2
mov ah,3dh
int 21h
mov bx,ax
mov cx,0
mov dx,0
mov al,2
mov ah,42h
int 21h
mov ah,40h
mov bx,handle1
mov cx,5
lea dx,data_buffer
int 21h
Запись в файл(переход на новую строку)
Такой вопрос - как записать в файл несколько строк? А то пишет только в одну, пытался вставлять 13, 0ah, 0dh - че то не выходит. Вот начало, тут открытие файла, установка курсора в конец и запись. Что дописать чтобы курсор перешел на новую строку?
Код:
PS: и еще у меня в задании такой вопрос - вывод на экран последней строки текстового файла. Не поможете?
PPS: что такое FCB и DTA? Читаю Журдена, там везде это используется, а что это такое - не написано :(
Заранее спасибо :):)
Цитата: Rifler
Здраствуйте всем
Такой вопрос - как записать в файл несколько строк? А то пишет только в одну, пытался вставлять 13, 0ah, 0dh - че то не выходит. Вот начало, тут открытие файла, установка курсора в конец и запись. Что дописать чтобы курсор перешел на новую строку?
Такой вопрос - как записать в файл несколько строк? А то пишет только в одну, пытался вставлять 13, 0ah, 0dh - че то не выходит. Вот начало, тут открытие файла, установка курсора в конец и запись. Что дописать чтобы курсор перешел на новую строку?
Please help
Во-первых, 13=0Dh, а во-вторых, в венде и, если я не ошибаюсь, DOS, сигналом к переносу каретки является сочетание символов 0Ah и 0Dh. Просто запишите оба символа подряд.
Цитата: dreamer.mas
Во-первых, 13=0Dh, а во-вторых, в венде и, если я не ошибаюсь, DOS, сигналом к переносу каретки является сочетание символов 0Ah и 0Dh. Просто запишите оба символа подряд.
Я так уже пытался, не хавает. Пишет крокозябли-квадратики......:(
Нужно записывать сначала 0xDh, потом 0xAh
Спасибо-спасибо огромное!
Цитата: Rifler
Вывод на экран последней строки текстового файла.
С этим не поможешь?
Я с досом в асме работал очень мало.
Очевидно в венде тоже, ибо принципы нисколько не отличаются. А здесь вообще спрашивают об алгоритме.
Очевидно нужно организовать циклическое построчное чтение файла, выход из цикла происходит при достижении конца файла, и на экран выводим содержимое последней строки.
Для работы с файлами советую использовать функции ДОС версий старше 3, использующие файловые номера, ибо функции, работающие с FCB идут со времён, когда иерархической структуры каталогов не существовало и все файлы на диске лежали в корне. В современных условиях это может сильно затруднить работу.
О, друг мой, если Ваше чувство собственной важности завершило свой процесс [SIZE="1"][FONT="Times New Roman"]испражнения[/FONT][/SIZE] излияния в форум, прошу внять, что: а) не имею привычки работать в венде с файлами с помощью ассемблера б) что-то мне подсказывает, что тогда как в DOS чтение файла происходит через одно лишь (0x21, если я не ошибаюсь) прерывание, в венде это происходит с помощью вызовов API функций, что не тянет на "нисколько не отличаются" в) автор не указал, что ему необходимо (я склоняюсь к варианту, что ему как раз нужна помощь с кодом), а Ваш "алгоритм" не лучше чем "приделать руль и 4 колеса" для автомобилестроителя.
Цитата: dreamer.mas
что-то мне подсказывает, что тогда как в DOS чтение файла происходит через одно лишь (0x21, если я не ошибаюсь) прерывание, в венде это происходит с помощью вызовов API функций, что не тянет на "нисколько не отличаются"
Разница лишь в инструкции. DOS API вызываются инструкцией INT, winAPI - CALL. Те же функции работы с файлами, те же их параметры (если не брать в расчёт безопасность), те же принципы.
(я склоняюсь к варианту, что ему как раз нужна помощь с кодом)
Я, к сожалению, не такой хороший телепат. Но хочу, чтобы человек хоть чему-то научился, кроме того, как копировать текст из одного окошка в другое.
Ваш "алгоритм" не лучше чем "приделать руль и 4 колеса" для автомобилестроителя.
Предложите свой. Здесь свобода слова и я не говорил, что нужно делать так и только так.