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: Ошибка при выводе текста

Иван Денисов писал(а):
Добавьте
Код:
s[3]:=0X;
Нельзя "добавлять", нет в массиве элемента [3].

Автор:  Иван Денисов [ Воскресенье, 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/