Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 19 окт 2021, 04:48

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ 1 сообщение ] 
Автор Сообщение
 Заголовок сообщения: Поддержка строк в компиляторе OPCL
СообщениеДобавлено: 07 янв 2013, 14:35 
Не в сети
Аватара пользователя

Сообщения: 1001
Откуда: Днепропетровская обл.
Jordan писал(а):
У меня есть вопрос к вам. На вашем форуме, вы используете консольную версию оберона.(не компонент паскаль) Поддерживает ли компилятор строки как в паскале? Пример a+b, if (a = 'hello') then. Возможно ли подключить библиотеку SDL? Я делаю библиотеку GUI (на фри паскале) и хотел бы сразу писать на обероне.
Здравствуйте, Jordan.

Да, компилятор OPCL имеет поддержку строк, но только однобайтовых (не юникод). Конкатенация (склейка) возможна традиционным для Оберона способом (отдельной процедурой). Впрочем, OPCL имеет поддержку расширения OberonX, поэтому встроить конкатенацию в него (как и юникодные типы) представляется вполне возможным. Например:
Код: "OBERON"
  1. PROCEDURE "+"* (a, b: String): String;
  2. (* Console.String + String concatenation. *)
  3. VAR
  4. res: ARRAY LEN(a) + LEN(b) + 1 OF Char; i, j: Integer;
  5. BEGIN
  6. i := 0;
  7. WHILE a # 0X DO res := a; INC(i) END;
  8. j := 0;
  9. WHILE b[j] # 0X DO res := b[j]; INC(i); INC(j) END;
  10. res := 0X;
  11. RETURN res
  12. END "+";
И потом:
Код: "OBERON"
  1. MODULE Program5;
  2. IMPORT
  3. C := Console;
  4. VAR
  5. str: ARRAY 80 OF C.Char; c: C.Char;
  6. BEGIN
  7. C.SetSize(64, 5); C.SetFont("Lucida Console");
  8. C.SetColors(C.LGreenOnGreen); C.Clr;
  9. C.WriteStr("Enter a string, please: ");
  10. C.ReadStr(str);
  11. C.WriteStr("You have entered the string '" + str + "'"); C.WriteLn;
  12. c := C.ReadCh();
  13. END Program5.
Это фрагмент консольной библиотеки для OPCL и демонстрационного примера к ней. Конечно изучить OPCL будет полезно, но всё же делать библиотеку GUI советую на Компонентном Паскале (BlackBox), он видится более готовым для этой цели.

Базовая поддержка SDL для OPCL есть, но только самая базовая (придётся допиливать). Увы, малое количество библиотек — общая проблема Оберонов. Для КП/BlackBox есть более полный вариант. Всё это выложено здесь: http://sourceforge.net/projects/sdl-for-oberon/. (и для OPCL, и для BlackBox)


Вложения:
OPCL.png
OPCL.png [ 3.6 КБ | Просмотров: 5126 ]
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ 1 сообщение ] 

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club