OberonCore https://forum.oberoncore.ru/ |
|
Ошибка при выводе текста https://forum.oberoncore.ru/viewtopic.php?f=23&t=5689 |
Страница 1 из 1 |
Автор: | GameHunter [ Воскресенье, 01 Май, 2016 14:49 ] |
Заголовок сообщения: | Ошибка при выводе текста |
Нижеследующий код выдаёт в лог 012, затем мусор. Если в строке Log.String(s$); убрать $, то вылетает системное прервыание. Вероятно, ошибка где-то в модуле Log... Код: MODULE mtoolTest;
IMPORT Log; PROCEDURE Do *; VAR s:ARRAY 3 OF CHAR; BEGIN s[0]:='0'; s[1]:='1'; s[2]:='2'; Log.Int(LEN(s$)); Log.Ln; Log.String(s); END Do; END mtoolTest. |
Автор: | Пётр Кушнир [ Воскресенье, 01 Май, 2016 15:43 ] |
Заголовок сообщения: | Re: Ошибка при выводе текста |
Эта ваша "строка" не кончается нулём, хотя на это рассчитывают всякие алгоритмы. Модификатор $ может превратить массив символов в массив символов, оканчивающийся нулём (выделить подмассив символов от певого до "нуля", если "строка" короче массива). В общем, добавляйте 0X в качестве последнего символа в "строке". |
Автор: | Иван Денисов [ Воскресенье, 01 Май, 2016 17:13 ] |
Заголовок сообщения: | Re: Ошибка при выводе текста |
Добавьте Код: s[3]:=0X;
|
Автор: | LKom [ Воскресенье, 01 Май, 2016 17:19 ] |
Заголовок сообщения: | Re: Ошибка при выводе текста |
Иван Денисов писал(а): Добавьте Нельзя "добавлять", нет в массиве элемента [3].
Код: s[3]:=0X; |
Автор: | Иван Денисов [ Воскресенье, 01 Май, 2016 17:21 ] |
Заголовок сообщения: | Re: Ошибка при выводе текста |
Так надо для этого сделать массив длиной 4. Строка должна заканчиваться 0X. |
Автор: | LKom [ Воскресенье, 01 Май, 2016 17:25 ] |
Заголовок сообщения: | Re: Ошибка при выводе текста |
Иван Денисов писал(а): Так надо для этого сделать массив длиной 4. Строка должна заканчиваться 0X. С это и надо было начинать. Возможно, но не обязательно. Надо "добавить" в элемент [2]. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |