Из Википедии, бесплатной энциклопедии
  (Перенаправлено с языка программирования Versus )
Перейти к навигации Перейти к поиску

Visual IRC ( ViRC ) - это клиент чата через Интернет с открытым исходным кодом для операционной системы Windows . В отличие от многих других клиентов IRC , почти все функциональные возможности ViRC управляются включенным сценарием IRC , в результате чего поведение программы может быть расширено или изменено без изменения исходного кода .

История [ править ]

  • Visual IRC (16-бит) - выпущен в 1995 году для Windows 3.x, написан MeGALiTH. У этой программы было много встроенных функций, но она также могла быть написана сценариями с VPL ( язык программирования ViRC ), предшественником ViRCScript и Versus .
  • Visual IRC '96 (а позже Visual IRC '97, Visual IRC '98) - выпущен в 1996 году, написан MeGALiTH. Это была первая 32-разрядная версия ViRC, написанная для Windows 9x / NT. Многие из функций, которые были встроены в 16-битный ViRC, обрабатывались скриптом по умолчанию в ViRC '96. ViRC '98 содержал некоторый код, предоставленный Джесси МакГрю, он же «Mr2001», в частности, усовершенствования механизма ViRCScript. Язык сценариев несовместим с более ранней версией. В более поздних версиях были добавлены функции голосового чата и видеоконференцсвязи.
Разработка второй инкарнации замедлилась, и к 2000 году Visual IRC оказался мертвым. Первоначальный автор MeGALiTH (Адриан Кейбл) передал исходный код пользователю Mr2001 (Джесси МакГрю), который ранее предоставил некоторый код и который тайно разрабатывал клон под названием Bisual IRC (BIRC). Вместо того, чтобы перезапускать разработку базы кода ViRC '98, он объединил некоторые функции ViRC '98 в BIRC и выпустил его как Visual IRC 2.
  • Visual IRC 2 - впервые выпущенный Mr2001 по совпадению в 2001 году, язык сценариев Versus этой версии основан на ViRCScript, но внутренне он был почти полностью переписан. Фактически, ViRC 2 разделяет всего несколько сотен строк кода с ViRC '98. В этой версии были удалены функции голосовой и видеоконференцсвязи, поскольку библиотеки, используемые для их реализации, больше не поддерживались.

Большая часть исходного кода BIRC, ViRC 2 и связанных утилит была выпущена под лицензией GPL через веб-сайт проекта и SourceForge .

Versus [ править ]

Versus - это язык сценариев, изначально разработанный для IRC-клиента Bisual IRC и в настоящее время используемый с Visual IRC. Это во многом похоже на языках сценариев , используемых ircII и Mirc , а также Tcl и C .

Название «Versus» было выбрано потому, что его можно было сократить до «VS», которое было обычным сокращением для ViRCScript , языка, используемого Visual IRC '96 - '98. Versus оставался в основном обратно совместимым с ViRCScript, поэтому существующая документация и комментарии, в которых упоминалось «VS», оставались в основном точными в применении к Versus. Название также намекало на происхождение BIRC как замены ViRC.

Object Versus , или OVS, относится к объектно-ориентированным функциям Versus. Скрипты могут определять классы и работать с объектами и методами вместо текстовых данных и псевдонимов ; однако на практике OVS в основном используется для управления объектами VCL , составляющими интерфейс ViRC.

Хранилище скриптов [ править ]

Сценарии хранятся в файлах, обычно с расширением файла .vsc , хотя иногда используется расширение .lib . Файл сценария Versus просто содержит операторы, которые нужно интерпретировать при загрузке сценария; любые блоки, определенные в сценарии (см. ниже), заменят блоки, определенные с тем же именем в предыдущих сценариях.

Блоки, которые можно определить в скрипте [ править ]

  • Псевдонимы - это подпрограммы . Их можно вызвать из командной строки любого окна или из других частей скрипта. Псевдонимы, возвращающие значение, называются функциями; псевдоним может определять, должно ли оно возвращать значение, а затем действовать как функция или команда соответствующим образом.
  • Классы используются в объектно-ориентированном написании сценариев (OVS). Каждый класс может содержать свойства , методы , конструктор и деструктор .
  • События используются для обработки сообщений от IRC- сервера , а также определенных событий на уровне системы или клиента, таких как завершение передачи файла или открытие нового окна.
    • В событиях сервера используются регулярные выражения или собственные подстановочные знаки Versus для сопоставления сообщений с сервера. Если несколько серверных событий соответствуют конкретному сообщению, будет выполнено только одно с наивысшим приоритетом (вычисленное из длины шаблона и относительного «значения» подстановочных знаков в нем).
    • Клиентские события идентифицируются по имени: например, <OnCreateWindow_foo> и <OnCreateWindow_bar> будут запускаться при открытии нового окна. Они также могут включать шаблоны, которые ограничивают конкретные случаи, которые могут вызвать это событие (например, запускаться только при создании нового окна канала ).
  • Структура меню и пункты меню определяют контекстное меню , которые появляются для различных элементов интерфейса клиента, а также в главном меню , которое всегда видно. Блоки дерева меню определяют макет меню и задают заголовки для каждого элемента; блоки пунктов меню определяют код сценария, который будет выполняться при щелчке по элементу.
  • Панели инструментов и элементы панели инструментов аналогичны дереву меню и блокам пунктов меню, но они определяют панели инструментов, связанные с каждым окном. Новые панели инструментов можно добавить в интерфейс, просто выбрав уникальное имя.

Псевдонимы, методы (включая конструкторы и деструкторы), события, пункты меню и элементы панели инструментов называются подпрограммами или блоками кода.

Хранение данных [ править ]

Файлы [ править ]

  • Скрипты могут обращаться к файлам с помощью функций $ RandomRead () и $ ReadLine (), а также команд CreateFile и AppendText.
  • Сценарии также могут использовать класс TStringList VCL для чтения всего текстового файла в память, управления им и сохранения.

Переменные [ править ]

  • Все переменные могут содержать до 4 ГиБ данных.
  • Имена переменных начинаются со знака доллара ($) и прописной буквы, строчной буквы или символа подчеркивания.
  • Переменные могут содержать любые символы, хотя обычно они используются для печатаемого текста.
  • Локальные переменные устанавливаются с помощью @Lкоманды и существуют только в контексте подпрограммы, которая их создала. Они удаляются, когда процедура заканчивается. Некоторые локальные переменные предопределены, например $ C для имени текущего канала.
  • Глобальные переменные устанавливаются с помощью @команды, и к ним можно получить доступ из любой процедуры. Они удаляются при выходе клиента. Псевдонимы могут возвращать значение, задав глобальную переменную $ fresult.
  • Сохраненные переменные устанавливаются с помощью @Sкоманды и, как и глобальные переменные, доступны где угодно. Их значения немедленно сохраняются в постоянном хранилище и восстанавливаются при следующем запуске клиента.

Ассоциативные массивы [ править ]

  • Ассоциативные массивы сопоставляют ключи со значениями.
  • Ключи и значения могут содержать до 4 ГиБ данных без ограничений на разрешенные символы.
  • Локальные, глобальные и сохраненные значения массива могут быть установлены с помощью @L, @и @Sкоманды, и они ведут себя так же , как и соответствующие переменные. Когда установлено значение сохраненного массива, сохраняется весь массив.
  • Синтаксис $arrayname[key]используется для установки или получения значения для определенного ключа.
  • Сам по себе синтаксис $arraynameобрабатывает массив как список пар ключ-значение, позволяя сценарию установить все содержимое массива сразу или выполнить итерацию по уже имеющимся ключам.

Псевдопеременные [ править ]

  • Псевдопеременные (или pvars) похожи по синтаксису на переменные, но их значения не могут быть изменены.
  • Параметры от $ 0 до $ 9 содержат параметры, которые были переданы в текущую подпрограмму, по порядку. $ 0 содержит имя подпрограммы, $ 1 содержит первое слово строки параметров и так далее.
  • Переменные с $ 0- по $ 9- содержат параметры, которые были переданы текущей подпрограмме, а также все следующие параметры. $ 0- содержит имя процедуры и всю строку параметров, $ 1- содержит все параметры, $ 2- содержит все параметры после первого и так далее.
  • Специальная последовательность $?="PROMPT STRING"вызывает появление диалогового окна, предлагающего пользователю ввести значение.

Примеры кода [ править ]

Вот пример кода Hello World :

Псевдоним HELLO TextOut> $ C clBlack Привет, мир!EndAlias

Вот пример, чтобы сосчитать до десяти:

Псевдоним ДЕСЯТЬ для (@l $ i = 1; $ i <= 10; $ i ++) TextOut> $ C clBlack $ i конецEndAlias

Вот пример, чтобы сделать всех в текущем канале операторами :

Псевдоним MASSOP foreach ($ a, $ b, $ c, $ d; $ никлист ($ C)) Режим $ C + oooo $ a $ b $ c $ d конецEndAlias

Ссылки [ править ]

  1. ^ https://sourceforge.net/projects/visualirc/files/ViRC/2.0pl2/

Дальнейшее чтение [ править ]

  • Харалабидис, Алекс (1999). «Клиенты Windows IRC: Visual IRC». Книга IRC: полное руководство по ретрансляционному чату в Интернете . Пресс без крахмала . С.  37–38 . ISBN 1-886411-29-8.
  • Форрест Страуд (8 апреля 2004 г.) Visual IRC , WinPlanet Software Reviews

Внешние ссылки [ править ]

  • Домашняя страница Visual IRC
  • Список возможностей и скриншоты
  • Страница проекта SourceForge
  • Сборник скриптов ViRC
  • ViRC DocCenter (по сравнению с языковым справочником)
  • IRC-клиенты для Windows - список из 60 приложений, список подготовлен ircreviews.org