Вопрос № 117328: У меня такая проблема:
хотел вывести содержимое текстового файла на экран, в результате если в текстовом файле попадался код 0a0dH возврат каретки, то на экран начинало выводить с новой строки и начальной точки что мне совсем не надо. Сделал фун...
Вопрос № 117.328
У меня такая проблема:
хотел вывести содержимое текстового файла на экран, в результате если в текстовом файле попадался код 0a0dH возврат каретки, то на экран начинало выводить с новой строки и начальной точки что мне совсем не надо. Сделал функцию которая находит и удаляет 0a0dH. В итоге все получилось громоздко и некрасиво. Вопрос такой как это можно сделать красиво? И процедура Enter_Delete у меня немного аномально работает мне кажется удаляю 0a0Dh я неправильно, хотя вроде все нормально работает. Аномалия проявляется если я
второй раз открываю этот файл не выходя из своей программы. К примеру в первый раз на экран вывелось 1 $2 $ 3 $ , примерно и должно быть, то на второй раз между цифрой и знаком бакса появляются символы 1ы$2h$3,$
Отвечает: Зенченко Константин Николаевич
Здравствуйте, Пономарев Сергей Сергеевич!
В приложении переделанная процедура Delete_Enter.
Сделал функцию которая находит и удаляет 0a0dH
jnz Karetka
mov al,'$'
inc si;увеличение указателя в строке источника ещё можно понять(пропустить код 0Ah), но нужно помнить, что не все редакторы обозначают конец строки двумя байтами , иногда обходятся и одним байтом 0Dh inc di;? зачем увеличивать указатель строки приемника ? для меня осталось загадкой. Вы оставляете в строке приемника один байт без изменения с информацией оставшейся от предыдущего использования
dec cx
Удачи!
Приложение:
--------- И только наступив на грабли мы приобретаем драгоценный опыт!
Ответ отправил: Зенченко Константин Николаевич (статус: Профессионал) Украина, Киев Тел.: +380958380164 Адрес: Украина г.Киев ---- Ответ отправлен: 11.01.2008, 11:22 Оценка за ответ: 5 Комментарий оценки: Большое спасибо. Вы спрашиваете зачем нужны были все эти манипуляции с INC SI и INC DI. В общем я пытался добиться того что вы продемонстрировали в своем примере и оно работало правда немного аномально, можете проверить но свои функции выполняло. Я
просто тупил, ведь всего на всего надо было просто вести второе условие сmp al,0ah! Еще раз огромное спасибо