Описание Языка программирование РФокс
Внимание! страница делалась из документа Ворд часть скриншётов и сообщений пока не востановленна и не завершено форматирование
РусскийФокс — 1С-подобный язык программирования.
Язык программирования РусскийФокс (РФокс) — это интерпретатор для исполнения в среде Windows (WinXP и выше). Программа представлена в виде одного файла RusFox.exe и нескольких DLL-файлов (итого объем менее 40 Мбайт). В качестве первого параметра при запуске следует передавать текстовый файл с расширением rus, в котором должна содержаться программа на 1С-подобном языке программирования РусскийФокс, но удобней настроить, чтоб расширение RUS запускал RusFox.exe и задать доступ к запуску из любого каталога компьютера. RusFox компилирует файл RUS в файл PRG, а затем в исполняемый файл в среде RusFox.exe с расширением fxp. Расширения, кроме RUS, PRG и FXP так же могут запускаться, если имя файла с таким расширением передать в качестве параметра в RusFox.exe. Таким образом, распространять свою программу вы можете с расширением FXP, не передавая исходный текст программы (расширение RUS). Пример строки запуска:
FoxPro.exe Прога1.fxp или FoxPro.exe Прога1.RUS
Программа РусскийФокс распространяется бесплатно, как есть, и особенно удобна для учебных целей, так как не требует инсталляции, к тому же позволяет изучать объектно-ориентированную технологию программирования, создавать и наследовать объекты. Это пожалуй самый легкий для первоначального освоения язык программирования.
Закачать нужные файлы (саму программу, DLL-файлы, примеры, учебник) можно с https://f2h.io/t5mbzw0bcuha Скачать РусФокс 6.01
Разработчик данного языка программирования Ошнуров Андрей Михайлович г.Уфа ufascript@mail.ru . Для создания данного 1С-подобного языка программирована использована легально приобретенная программа FoxPro 9, лицензия 76683-120-0299985-18031.
На сегодня мне известны два 1С-подобных русскоязычных языка программирования — OneScript и Перфолента. OneScript не является объектно-ориентированным, но тем не менее ранее я придумал способ создавать в нем объекты (см. мою статью в https://infostart.ru/public/611221/ ), хотя этот способ является слишком тяжелым и плохочитабельным.
На данный момент из синтакс-помошника учебной версии 1С реализованы все функции работы со строками, все функции работы со значениями типа Дата, функции преобразования значений (число, строка, дата). Работу данных функций можно изучать по справочникам 1С.
Объектно-ориентированный язык программирования «Перфолента» так же содержит базовые функции языка программирования 1С. Язык программирования «Перфолента» имеет свой редактор, который удобен для программирования и в РФокс. Закачать данный редактор можно здесь http://promcod.com.ua (http://promcod.com.ua/Data/Media/PerfolentaSetup.exe ) .
При открытии файла в редакторе «Перфолента» вы можете выбрать одно из трех расширений: pfl (код на Перфолента), os (код на OneScript) и rus (код на РФокс). Редактор поддерживает раскраску кода, сворачиваемость строк и запуск на исполнение кода РФокса, а начиная с версии 0.4.0.0 позволяет создавать, в том числе на РФоксе, вспомогательные программы для удобства работы с редактором.
Учебное видео по языку РФокс можно посмотреть на моем канале Ютуб https://www.youtube.com/watch?v=id7Qj7Tm4sc&list=PLo4sldcUomOrKAPb_0A5Kv-nILQG3I7Dd&index=26
Что умеет Русский Фокс ?
Цель создания своего языка программирования – это желание создать удобный для себя объектно-ориентированный, русскоязычный и легко читабельный язык, внутри которого будет встроена полноценная справочная система, а также создать самый легкий язык программирования для обучения начинающих программистов. Все библиотеки и русскоязычные операторы, и объекты используются мной в реальных проектах на FoxPro9, которые я пишу для своих клиентов. А чтоб ими могли пользоваться и другие программисты, я начал разрабатывать данный язык программирования. К тому же мне, при выполнении каких-то действий не всегда удобно запускать громоздкий FoxPro 9. Гораздо удобнее использовать маленький интерпретатор (менее 40 мб) на флешке, который не требует инсталляции. Следует сказать, что текст для РФокса, в отличии от FoxPro, может быть написан в кодировке UTF8-BOOM. Устаревшую кодировку Win1251, которую использует FoxPro, уже не поддерживает большинство современных редакторов. Таким образом, писать код для РФокс, кроме удобного редактора Перфолента, вы можете на любом современном редакторе.
РФокс – это один из самых простых свободно распространяемых языков для освоения начинающими. Легко создаются экранные формы для ввода информации, сохраняются в простых DBF таблицах и легко формируются отчеты на основе шаблонов Excel и LibreOffice (OpenOffice). Для начального изучения программированию, в том числе объектно ориентированному, самое то.
1С и OneScript пока не позволяют создавать объекты. На языке программирования Перфолента.NET можно создавать DLL-файлы, чтоб подключать их в РФоксе. Кроме этого, вы можете создавать DLL-файлы для РФокс на C#, С++, Rust. Кроме редактора Перфолента вы можете использовать и NotePad++. Описание по настройкам есть в документации и на видео на моем канале Ютуб «Андрей Ош» плейлист «Русский Фокс».
Я умышлено создал базовые функции для РФокса аналогичными, как в 1С, так как сам программирую на 1С. Кстати, и Перфолента имеет такие русскоязычные функции. Потому пользователю будет легко программировать в РФокс, в Перфолента, в OneScript и в 1С. Надо только учитывать, что в РФокс знак «;» означает перевод команды на следующую строку, а не окончание команды, как в 1С, в OneScript и Перфолента. К этому придется привыкнуть.
Для удобства в РФокс мелкие команды можно записать в одну строку, если строка начинается с символа «;»:
; Перем1 = 5; Переменная2 = 3;
Это исключение, позволяющее делать написание кода более компактным, в котором знак «;» выполняет иную роль: вместо знака продолжения строки является знаком разделения строк кода программы.
Сразу скажу, что РФокс – это 32-разрядный язык программирования и работает только под Windows (лично меня это пока устраивает), но на нем можно генерировать пока простой PHP-код, а так же будет генерация кодов для других языков программирования. РФокс уже содержит объекты для генерации HTML и CSS кода.
РФокс, как наследник FoxPro9, обладает практически всей мощью языка FoxPro9. Вы можете смешивать англоязычное программирование на FoxPro9 с программированием на РФокс в одном коде и, например, написать так:
IF Значение=ИСТИНА ТОГДА MESSAGEBOX(«Высвечиваю сообщение из MessageBox()») Предупреждение(«Высвечиваю сообщение из Предупреждение()») КОНЕЦЕСЛИ;
Так что справочник и документация по FoxPro вам так же будет полезна.
Кроме того, как промежуточный файл компиляции генерируется файл PRG в кодировке win1251, а затем исполняемый код для FoxPro9 с расширением fxp, который можно запускать без первоначального исходного текста. Экранные формы, меню и модули fxp, созданные в среде FoxPro, вы можете подключать и в РФоксе. Но зачем вам возиться с англоязычным FoxPro, когда у вас есть Русский Фокс ?
Встроенные объекты РФокс существенно расширяют возможности FoxPro9. Функции в РФоксе бывают свободными (С) и в составе объектов. Часть свободных функций являются аналогами 1С. В справочной системе они обозначены как (1С). Большинство функций сгруппированы в объектах. Каждый объект имеет свойство Помощь() (возвращает строку с помощью по объекту) и ПоказатьПомощь() (высвечивает на экран помощь по объекту). Если в помощи объекта при описании функции стоит знак (С), то это значит, что функция имеет свободный аналог, то есть может быть вызвана без создания объекта. А если стоит знак (1С), то эта свободная функция работает аналогично, как в системе 1С, то есть для изучения этой функции можно смотреть руководство по 1С. Часть объектов в РФокс являются предопределенными, то есть создаются при запуске вашего модуля: ОбъектСтрока (содержит функции по работе со строками), ОбъектДата (работа с датами), ОбъектЧисло, ОбъектФайл, ОбъектСистема, ОбъектДиалог, ОбъектРабочийСтол, ОбъектИсследование, RusFox (объект с кратким описанием объектов в РФокс). Функции заключенные в предопределенных объектов можно вызывать, не создавая объекта. Например, посмотреть на экране помощь по объекту: ОбъектСтрока.ПоказатьПомощь(). Если же объект не предопределен, то следует сначала создать объект:
CSS = НовыйОбъект(«Генератор_CSS») CSS. ПоказатьПомощь()
А предопределенный объект можно использовать сразу, без создания:
ОбъектСтрока.ПоказатьПомощь()
Если запустить RusFox.exe без параметров, то откроется окно, в котором вы можете получить на экран помощь по всем объектам РФокса и скопировать этот текст в любой редактор. Список объектов постоянно пополняется, а так же появляются новые функции в объектах.
Чтоб поверхностно понять нынешние возможности РФокса можно ознакомиться со списком существующих объектов в РФоксе версии 5.13: Диск, ЗапускПрогWindows, ЭкспортИмпорт, ПросмотрКурсора, КаталогиWindows, Реестр, ФункцииDBF, ФайлDBF, Курсор, Массив, ОбъектМассив, RepOpenOffice, Excel, ТабличныйОтчет, Перфолента, PHP, clickermann, Интернет, ВебКлиентPHP, ВебКлиентMySQL, ВебКлиент, ВебСервер, Сеть, Shell, ФормаГлавная, ФормаОкно, Коллекция, Редактор, Флажок, СтрокаВвода, Надпись, Кнопка, КомбинированныйСписок СписокСтрок Таймер Страницы ГруппаКнопок ГруппаПереключателей, Изображение, Спиннер, Фигура, ТаблицаКарточки, HTML5, Генератор_CSS. К этому можно добавить документацию по FoxPro9. Все объекты, существующие в FoxPro9 так же могут быть созданы. Объекты Коллекция … - Фигура – это наследники аналогичных объектов из FoxPro9.
В каталогах РФокс содержатся примеры программирования и примеры различных программ на РФоксе, которые позволят вам быстрее освоить программирование на РФоксе.
РФокс можно писать и скрипты. Он может запускать командную строку и принимать результат вывода. А если возникнет потребность вывести строки в терминал, то можно их записать в текстовый файл, а затем через командную строку запустить просмотр этого текстового файла в терминале. Может не очень удобно, но это работает.
Думаю, РФокс полезен для системных администраторов (см. функции объекта Сеть), работающих с Windows, которым некогда серьезно изучать программирование, но есть потребность автоматизировать рутинные операции. С Linux так же можно создать канал для работы, используя объект ВебСервер и ВебКлиент. ВебСервер генерируется на PHP объектом ВебСервер и данный файл server.php помещается в каталог ВебСервера. Он может принимать, отдавать файлы и запускать программы. Правда я пока не занимался вопросами безопасности и шифрования для такого соединения, так как пока не было надобности.
Возможности и ограничения
Правила для переменных:
1) имя переменной может содержать не более 254 символа
2) в имени переменной могут быть буквы и цифры, но имя должно начинаться с буквы
3) в имени переменной нельзя использовать пробелы
4) существуют имена зарезервированные для системных переменных
5) максимальное количество переменных в программе 65000
6) символьная переменная может хранить до 16777184 символов, а символьная константа ограничена 255 символами
7) Области видимости переменных ЛПЕРЕМ – локальные переменные, ПЕРЕМ – глобальные переменные
8) для именования переменных не имеет значение регистр.
Все переменные, не перечисляемые в операторе ЛПЕРЕМ создаются, как глобальные.
В функции и процедуры может быть передано не более 26 параметров. Если передается меньшее количество параметров, чем объявлено в функции, то не переданные параметры будут = ЛОЖЬ.
+, -, *, / - основные арифметические действия
% - остаток от деления
- или ^ - возведение в степень
<>, != - не равно
== - точное равенство для строк.