Что умеет Русский Фокс?

Публикация № 1128834

Разработка - Языки и среды

РФокс РусскийФокс FoxPro ООП

9
Краткий обзор русскоязычного объектно ориентированного 1С подобного языка программирования Русский Фокс.

    Цель создания своего языка программирования – это желание создать удобный для себя объектноориентированный, русскоязычный и легко читабельный язык, внутри которого будет встроена полноценная справочная система. Все библиотеки и русскоязычные операторы и объекты  используются мной в реальных проектах на FoxPro9, которые я пишу для своих клиентов. А чтоб ими могли пользоваться и другие программисты, я начал разрабатывать данный язык программирования. К тому же мне, при выполнении каких то действий не всегда удобно запускать громоздкий FoxPro 9. Гораздо удобнее использовать маленький интерпретатор (менее 30 мб) на флешке, который не требует инсталляции.

     Данный проект позволяет мне после усвоения нового материала создавать новые функции и объекты в Русском Фоксе (РФокс). Таким образом, РФокс для меня своего рода конспект, в котором я попытаюсь объединить опыт работы с другими языками программирования и развивать русскоязычную библиотеку для FoxPro9, так как библиотека РФокса полностью совместима в FoxPro.

     РФокс – это один из самых простых свободно распространяемых языков для освоения начинающими. Легко создаются экранные формы для ввода информации, сохраняются в простых DBF таблицах и легко формируются отчеты на основе шаблонов Excel и LibreOffice (OpenOffice). Для начального изучения программированию, в том числе объектно ориентированному, самое то. Можно его без особых затрат сделать и многоязычным. Была идея сделать единственный в мире башкирскоязычный язык программирования, но пока не нашел в Башкирии желающих популяризировать башкирский язык и обучать детей в национальных школах программированию на башкирском.

     К сожалению, следует признать, что это пока единственный достаточно объемный объектно ориентированный русскоязычный язык программирования в мире. 1С и OneScript не позволяют создавать объекты, потому их не учитываем. Но на Украине, благодаря стараниям Сергея Рогаткина, уже появился конкурент (но в реальности соратник) в иной весовой категории //infostart.ru/public/1101638/ , на котором заодно можно создавать DLL-файлы, чтоб подключать их в РФоксе. Кроме того, разработанный редактор языка программирования Перфолента подходит и для программирования на РФоксе. Автор Перфоленты добавил возможность открывать для редактирования и последующего запуска файлы РФокса и OneScript. Но кроме редактора Перфолента вы можете использовать и NotePad++. Описание по настройкам есть в документации и на видео. 

      Я умышленно создал базовые функции для РФокса аналогичными, как в 1С, так как сам программирую на 1С. Кстати, и Перфолента имеет такие русскоязычные функции. Потому пользователю будет легко программировать в РФокс, в Перфолента, в OneScript и в 1С. Надо только учитывать, что в РФокс знак «;» означает перевод команды на следующую строку, а не окончание команды, как в 1С, в OneScript и Перфолента. К этому придется привыкнуть. 

      Сразу скажу, что РФокс – это 32-разрядный язык программирования и работает только под Windows (лично меня это пока устраивает), но на нем можно генерировать пока простой PHP-код, а так же будет генерация кодов для других языков программирования. РФокс уже содержит объекты для генерации HTML и CSS кода.

    В отличие от FoxPro9, кодировка исходного текста которого может быть только Win1251, РФокс, кроме кодировки Win1251, понимает и UTF8-BOOM, поэтому вы можете писать код для РФокс на современных редакторах.

     РФокс, как наследник 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.

     В каталогах РФокс содержатся примеры программирования и примеры различных программ на РФоксе, которые позволят вам быстрее освоить программирование на РФоксе.

     РФокс пока не создает exe и dll файлов, но умеет подключать dll файлы от windows, а так же типовой стандарт dll файлов C#, Перфоленты и т.п. Умеет запускать статические и динамические методы объектов из dll-файлов.

     На РФокс можно писать и скрипты. Он может запускать командную строку и принимать результат вывода. А если возникнет потребность вывести строки в терминал, то можно их записать в текстовый файл, а затем через командную строку запустить просмотр этого текстового файла в терминале.

     Думаю, РФокс полезен для системных администраторов (см. функции объекта Сеть), работающих с Windows, которым некогда серьезно изучать программирование, но есть потребность автоматизировать рутинные операции.  С Linux так же можно создать канал для работы, используя объект ВебСервер и ВебКлиент. ВебСервер генерируется на PHP объектом ВебСервер и данный файл server.php помещается в каталог ВебСервера. Он может принимать, отдавать файлы и запускать программы. Правда я пока не занимался вопросами безопасности и шифрования для такого соединения, так как пока не было надобности.

 

     Так как проект не коммерческий и я занимаюсь им в свободное от основной работы время, то прошу не сильно критиковать меня за обнаруженные дефекты, но сообщать о них. Желающие могут помочь в развитии объектов РФокса. Например, знатоки PHP могут развить объект PHP. А знатоки Python, JavaScript, Java и т.д. могут помочь в создании соответствующих объектов по аналогии с объектом PHP.

9

Скачать файлы

Наименование Файл Версия Размер
Что умеет Русский Фокс ?:
.rar 26,39Mb
29.09.19
0
.rar 26,39Mb Скачать

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. Perfolenta 169 30.09.19 13:16 Сейчас в теме
слежу за РусФоксом с самого начала... язык развивается и уже вполне может быть полезен... например, там где еще используется ХР, или 1С-никами, которые раньше работали с FoxPro...
думаю, что для того, что бы РусФоксом стали пользоваться больше людей, автору надо публиковать полезные скрипты, которые будут соответствовать принципу "взял, использовал и получил пользу"...
это же и моей Перфоленты касается...
утюгчеловек; Fox-trot; +2 Ответить
2. andreosh 97 30.09.19 13:34 Сейчас в теме
Полезные скрипты представлены в Ютубе на видеоканале и в каталоге программы. Можно еще выполнять заказы и пожелания читателей на разработку скриптов и выкладывать их.
3. Perfolenta 169 30.09.19 14:11 Сейчас в теме
(2) переименуйте файл для скачивания, а то не понятно, что предлагается скачать...
4. andreosh 97 30.09.19 20:21 Сейчас в теме
(3) Осталось понять, как это сделать. В реальности там файл РФокс версии 5.13 https://f2h.io/2dxs9iteia9o
5. acanta 67 30.09.19 21:19 Сейчас в теме
Обычно возникает вопрос как будут распространяться разработки - в виде плагинов, библиотек или готовых приложений.
6. andreosh 97 30.09.19 21:50 Сейчас в теме
(5) РФокс производит исполняемый код с расширением fxp (FoxPro9). Он может исполняться из РФокса (указывается файл в качестве параметра). Либо запускается файл RUS (указывается файл в качестве параметра) с текстом программы, но каждый раз все равно формируется fxp и запускается на исполнение, то есть запуск будет медленней. Можно создавать fxp-модули и подключать их в своих проектах (в каталоге программы и на видео в Ютубе есть примеры). Но РФокс вам придется передавать клиенту. РФокс (RusFox.exe и dll-файлы от FoxPro9) свободно распространяемый.
Perfolenta; +1 Ответить
7. Steelvan 30.09.19 22:45 Сейчас в теме
(6) Для суровых челябинских программистов.
Нужно ну ооочень хотеть это программировать.
Но плюсик поставил для поддержки :)
11. Perfolenta 169 01.10.19 09:54 Сейчас в теме
(7) вы правы, нужно быть энтузиастом, что бы тратить на это свое время... к сожалению, мы все вынуждены зарабатывать деньги и на энтузиазм сил и времени хватает не у многих... но без энтузиастов новое не пробьется...
утюгчеловек; +1 Ответить
8. acanta 67 30.09.19 23:58 Сейчас в теме
Нда. Если относиться к индусскому инглишу как к латыни в ботанике или итальянскому в музыке то вообще никаких шансов нет даже у 1с.
Но пока так к программированию не относятся, лет прошло мало.
Конечно, ленточки от советских печатных машинок на японские матричные принтеры это не вернет, а лазерники с картриджами это тааак сложно.. инструкций нет, в институте не изучают... Пичалька.
10. Perfolenta 169 01.10.19 09:07 Сейчас в теме
(8) на самом деле проблема только в неверии в свои силы... как вы думаете была ли "печалька" у Линуса Торвальдса, когда он первую версию в дохлый по тем временам интернет закинул? А изучали ли в институте первые версии Питона, например? Дело в том что нашлись в достаточном количестве энтузиасты, которые не ныли, а брали на себя часть трудностей автора... совершенствовали и распространяли... а у нас, со времен Петра Первого, распространяется какое-то западопоклонство... "вот немец-то голова, не то что наши!"
Русский язык отлично подходит для программирования, ни чуть не хуже английского... просто развивать надо свое, а не на заграницу молиться...
acanta; olejnikov_m; andreosh; утюгчеловек; +4 Ответить
12. Steelvan 01.10.19 12:23 Сейчас в теме
(10) западопоклонство самим Западом же здесь и распространяется, согласен
13. acanta 67 01.10.19 16:04 Сейчас в теме
(10) проблема не в энтузиазме, а в терпении.
Норбеков и бизнес-молодость это тоже энтузиасты.
Но Фидо проиграло интернету потому что бабло заменяет энтузиазм и его в принципе можно напечатать, в отличие от божьей искры. У энтузиазма есть один роковой недостаток - он негибкий. Если клиенты морально не готовы ещё или наоборот, выявили какие то проблемы, есть необходимость развивать - энтузиаста практически невозможно поправить.
14. Perfolenta 169 01.10.19 18:15 Сейчас в теме
(13) не знаю причем тут Норбеков...
терпение необходимо автору, т.к. разработка может быть длительной, а успех совсем не очевидным...
а энтузиасты нужны на начальном этапе жизненного цикла, что бы морально поддержать автора и создать начальную экосистему... а в уже существующую экосистему могут потянуться и расчетливые "бизнесмены"...
да, вместо энтузиастов вполне пойдут реклама и маркетинг, но как известно, это не всем авторам по карману...
энтузиасты не могут, не станут и не должны обслуживать клиентов, это из другого мира...
Энтузиасты это люди с хорошей душой, которые видят, что если подставить плечо, то птичка полетит и это будет здорово....
9. andreosh 97 01.10.19 07:53 Сейчас в теме
Для написания прикладной программы в РФоксе нужно: 1) Хранить данные (dbf-файлы), 2) Отображать данные (создание экранных форм) 3) Обрабатывать и выводить данные на печать (отчеты).
Для хранения в РФоксе удобно использовать объект "ФункцииDBF",
Для отображения объекты: ФормаГлавная ФормаОкно Редактор Флажок СтрокаВвода Надпись Кнопка КомбинированныйСписок СписокСтрок Таймер Страницы ГруппаКнопок
ГруппаПереключателей Изображение Спиннер Фигура ТаблицаКарточки
Для отчетов - "ТабличныйОтчет", благодаря которому формировать отчеты на основании шаблонов Excel или LibreOffice (в зависимости, какой из этих объектов укажешь объекту "ТабличныйОтчет")
Кроме этого, с помощью объектов "ВебКлиентPHP" и "ВебСервер" можно организовать обмен файлами между приложениями по сети интернет или по локальной сети, а так же обновлять версии программ у пользователей через ВебСервер.
У РФокса самый низкий порог вхождения в программирование по сравнению с другими языками программирования.
15. andreosh 97 11.10.19 15:02 Сейчас в теме
Создаем ВебСервер и работаем из РФокса через него с таблицами MySQL
https://youtu.be/1wZqFeNtDtk
РФокс версии 5.17 от 11.10.2019 https://f2h.io/munalzxsufoe
Оставьте свое сообщение

См. также

Упражнения на Перфоленте. Парсим технологический журнал 1С 20

Статья Системный администратор Программист Архив с данными Windows Абонемент ($m) Сервисные утилиты Инструментарий разработчика Практика программирования Разработка

В статье рассматривается парсинг технологического журнала 1С на новом языке программирования Перфолента. Статья может быть полезна как для парсинга, так и для изучения некоторых особенностей языка.

1 стартмани

31.07.2019    3052    Perfolenta    62       

OneScript - WinExt: Работа с окнами, управление мышкой и клавиатурой 74

Инструменты и обработки Программист Архив с данными Windows Абонемент ($m) OneScript

Цель: Инструмент позволяющий автоматизировать управление окнами, мышкой, посылать нажатия клавиш. Задачи: - Поиск окна по части заголовка - Поиск фрагмента изображения похожего на сохраненный в файле кусок. - Возможность позиционировать курсор, нажимать кнопки мышки. - Возможность посылать нажатия клавиш

1 стартмани

29.11.2018    8043    8    ret-Phoenix    30       

Динамическое выполнение кода OneScript из 1С:Предприятие 31

Статья Программист Конфигурация (md, cf) v8 Абонемент ($m) OneScript

В статье описан подход, позволяющий динамически выполнять фрагменты кода OneScript из 1С:Предприятие и получать результаты выполнения

1 стартмани

03.11.2018    8906    6    blackhole321    19       

Синхронизация хранилища 1С и git-репозитория с применением OneScript и Gitsync. Методика и пошаговая инструкция для создания скрипта и его регулярного запуска 190

Статья Системный администратор Программист Архив с данными v8 Абонемент ($m) OneScript

- Настройка репозитория для работы с большими типовыми конфигурациями  - Алгоритм создания скрипта выгрузки и его исходный код  - Обработка исключительных ситуаций  - Рекомендации по дальнейшему развитию процесса 

1 стартмани

14.09.2018    20490    24    Vladimir Litvinenko    87       

Виртуальная дисконтная карта на OneScript 19

Инструменты и обработки Программист Конфигурация (md, cf) v8 УУ Оптовая торговля Розничная торговля Абонемент ($m) OneScript

В статье рассмотрены возможности http-сервисов OneScript для создания бизнес-приложений, на примере демонстрационной конфигурации, реализующей функционал виртуальной дисконтной карты.

1 стартмани

17.07.2018    5744    4    blackhole321    6       

Платежи через RoboKassa из web-приложения OneScript 16

Статья Программист Конфигурация (md, cf) v8 Абонемент ($m) OneScript

В статье рассмотрен пример организации платежей из web-приложения OneScript через платежную систему RoboKassa

1 стартмани

27.06.2018    5343    4    blackhole321    0       

Создаем сайт ресторана на OneScript 91

Инструменты и обработки Программист Конфигурация (md, cf) v8 Рестораны, кафе и фаст-фуд Абонемент ($m) OneScript

В статье изучаются возможности http-сервисов OneScript по созданию web-приложений на примере сайта ресторана

1 стартмани

19.06.2018    12023    16    blackhole321    63       

HTTP-сервисы OneScript. Каркасная конфигурация 2.0 63

Инструменты и обработки Программист Архив с данными v8 Абонемент ($m) OneScript

В статье описана новая версия конфигурации для создания web-приложений на основе http-сервисов OneScript в среде 1С:Предприятие.

1 стартмани

05.06.2018    10608    27    blackhole321    6       

Упрощаем разработку взаимодействия с СУБД в http-сервисах OneScript 14

Статья Программист Конфигурация (md, cf) v8 Абонемент ($m) OneScript

В статье описана библиотека и подсистема, позволяющие упростить разработку взаимодействия с СУБД в http-сервисах OneScript

1 стартмани

30.05.2018    5856    2    blackhole321    1       

Yep Cart. Пишем интернет-магазин на http-сервисах OneScript 44

Статья Программист Конфигурация (md, cf) v8 УУ Оптовая торговля Розничная торговля Абонемент ($m) OneScript

В статье описана демонстрационная конфигурация, реализующая простейший интернет магазин на http-сервисах OneScript, интегрированный с 1С:Предприятие.

1 стартмани

16.04.2018    9829    15    blackhole321    33       

Фоновые задания в http-сервисах OneScript 49

Статья Программист Архив с данными Абонемент ($m) OneScript

В статье описана библиотека, реализующая механизм фоновых заданий в http-сервисах OneScript, а также некоторые обновления платформы 1.0.19

1 стартмани

28.03.2018    12678    4    blackhole321    14       

Кэшируем данные в приложениях OneScript 7

Статья Программист Архив с данными Абонемент ($m) OneScript

В статье описана библиотека, позволяющая кэшировать данные в памяти, в ваших приложениях OneScript.

1 стартмани

25.03.2018    6818    2    blackhole321    2       

Yep - простая flat-file CMS на OneScript 40

Статья Программист Архив с данными v8 1cv8.cf Абонемент ($m) OneScript

В статье рассмотрено создание простейшей flat-file CMS, на основе каркасной конфигурации для web-приложений OneScript, в среде 1С:Предприятие.

1 стартмани

02.03.2018    11836    7    blackhole321    32       

Конфигурация для создания web-приложений OneScript из 1С:Предприятие 112

Статья Программист Архив с данными v8 1cv8.cf Абонемент ($m) OneScript

В статье описана методика создания web-приложений OneScript на основе каркасной конфигурации в среде 1С:Предприятие

1 стартмани

23.02.2018    16729    20    blackhole321    67       

Создаем "кроссплатформенную" библиотеку для OneScript и 1С:Предприятие 48

Статья Программист Конфигурация (md, cf) v8 Абонемент ($m) OneScript

Описана методика создания внешних компонент для OneScript и 1С:Предприятие, переносимых на уровне прикладного кода.

1 стартмани

05.02.2018    11876    4    blackhole321    7       

Знакомимся с HTTP-сервисами в OneScript 76

Статья Программист Архив с данными v8 1cv8.cf Абонемент ($m) OneScript

В статье описан механизм HTTP-сервисов в OneScript, а также приведен пример интеграции и совместной работы с 1С:Предприятие

1 стартмани

15.01.2018    14562    18    blackhole321    15       

OneScript SQL - работа с СУБД 113

Инструменты и обработки Программист Архив с данными Абонемент ($m) OneScript

Внешняя компонента, реализующая возможность работы с базами данных из OneScript (https://infostart.ru/public/548028/ , https://infostart.ru/public/327581/). Поддерживаются базы: sqlite, MS SQL Server, MySQL, PostgreSQL.

1 стартмани

12.09.2017    17201    16    ret-Phoenix    35       

OneScript и Ajax. Создание GET-запроса 6

Инструменты и обработки Программист Архив с данными ИТ-компания Россия Абонемент ($m) OneScript

Создание GET-запроса на OneScript с помощью библиотеки UfaScript.osb. Описание шаблона OneScript.zip для Joomla. Главный файл шаблона Index.php генерируется функциями из библиотеки UfaScript.osb.

1 стартмани

05.06.2017    6842    andreosh    0       

Функционал Gulp на OneScript 3

Инструменты и обработки Программист Архив с данными Россия Абонемент ($m) OneScript

Как использовать OneScript для автоматического запуска обработки сохраненного файла.

1 стартмани

05.06.2017    7245    andreosh    1       

Примеры скриптов на OneScript 140

Инструменты и обработки Системный администратор Архив с данными Россия Windows Абонемент ($m) OneScript

В своей работе нам часто приходится заниматься рутинными операциями. При небольшом их объеме "ручное" выполнение еще допустимо, но с ростом их числа все мы задумываемся об автоматизации. Вот тут нам на помощь и приходят скрипты. На этом сайте уже выложено немало примеров различных скриптов, вот и я решил внести свою лепту.

1 стартмани

14.07.2016    24943    39    Drak0n    43       

Как решать повседневные задачи с помощью OneScript 465

Статья Системный администратор Программист Документ XML Абонемент ($m) OneScript

Если вам не нравится выполнять рутинные операции вручную. Если вы 1С-ник, который хоть раз в жизни писал BAT-CMD-файлы для автоматизации, или который время от времени вынужден вспоминать особенности черной магии Powershell, то эта статья для вас. Теперь можно все это делать на языке 1С. Интересно? Читайте дальше!

1 стартмани

04.02.2015    67501    17    Evil Beaver    211