1
Общий раздел / Re: BlackBox без MDI
« : Октябрь 15, 2018, 03:56:43 am »
Переделал для 1.7
Онлайн компилятор Oberon-07/11
Путеводитель по Оберон-проектам.
Логи jabber-конференции.
Онлайн исходники BlackBox: тут:WeBB и на github
Исходники Project Oberon V4 на github.
Сборник решений задач книги "Современное программирование с нуля!" тут. А обсуждение здесь.
В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.
Спасибо! Поправил. Буду бдителен на этот счет впредь.https://models.molpit.org/model/49
У тебя глобальный String перекрывается твоей собственной функцией String. Обратиться к глобальному можно так: JS.String.fromCharCode
Приведи весь сгенеренный код или минимальный пример, где оно не работает.Вот погляди.
Модуль JS вместо SYSTEM. Но в твоем случае можно обойтись обычным обероном:Спасибо, попдправилКод: [Выделить]result := b1 + LSL(b2, 8) + LSL(b3, 16) + LSL(b4, 24);
PROCEDURE GetInt4(a: ARRAY OF CHAR; pos: INTEGER): INTEGER;
BEGIN
RETURN ORD(a[pos]) + LSL(ORD(a[pos+1]), 8) + LSL(ORD(a[pos+2]), 16) + LSL(ORD(a[pos+3]), 24)
END GetInt4;
PROCEDURE GetInt2(a: ARRAY OF CHAR; pos: INTEGER): INTEGER;
BEGIN
RETURN ORD(a[pos]) + LSL(ORD(a[pos+1]), 8)
END GetInt2;
Firefox почему-то ругаетсяСтолкнулся с тем, что CHAR транслятор понимает как числа.
На это были причины. Для твоего случая надо просто сделать String.fromCharCode(arg)
String.fromCharCode is not a function
PROCEDURE GetInt4(a: ARRAY OF CHAR; pos: INTEGER): INTEGER;
BEGIN
ASSERT(ORD(a[pos + 3]) < 128)
RETURN ORD(a[pos]) + (ORD(a[pos+1]) + (ORD(a[pos+2]) + ORD(a[pos+3]) * 0100H ) * 0100H) * 0100H
END GetInt4;
PROCEDURE GetInt2(a: ARRAY OF CHAR; pos: INTEGER): INTEGER;
BEGIN
ASSERT(ORD(a[pos + 1]) < 128)
RETURN ORD(a[pos]) + ORD(a[pos+1]) * 0100H
END GetInt2;
PROCEDURE Char*(arg: CHAR);
BEGIN
JS.do("document.getElementById('log').innerHTML = document.getElementById('log').innerHTML + arg")
END Char;
Погляжу, не знал про это свойство.Влад, я сделал модуль для базовых операций со строками. Но вот ASSERT когда срабатывает, нельзя ли указывать в какой он процедуре сработал?
Процедуру вытащить можно, но непонятно зачем, если тебе и так весь стек доступен - см. свойство "stack" у перехваченного исключения.