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

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

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

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

Краткий обзор русскоязычного объектно ориентированного 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.

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

Наименование Файл Версия Размер
Что умеет Русский Фокс ?:

.rar 26,39Mb
29.09.19
1
.rar 26,39Mb 1 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Perfolenta 189 30.09.19 13:16 Сейчас в теме
слежу за РусФоксом с самого начала... язык развивается и уже вполне может быть полезен... например, там где еще используется ХР, или 1С-никами, которые раньше работали с FoxPro...
думаю, что для того, что бы РусФоксом стали пользоваться больше людей, автору надо публиковать полезные скрипты, которые будут соответствовать принципу "взял, использовал и получил пользу"...
это же и моей Перфоленты касается...
утюгчеловек; Fox-trot; +2 Ответить
2. andreosh 102 30.09.19 13:34 Сейчас в теме
Полезные скрипты представлены в Ютубе на видеоканале и в каталоге программы. Можно еще выполнять заказы и пожелания читателей на разработку скриптов и выкладывать их.
3. Perfolenta 189 30.09.19 14:11 Сейчас в теме
(2) переименуйте файл для скачивания, а то не понятно, что предлагается скачать...
4. andreosh 102 30.09.19 20:21 Сейчас в теме
(3) Осталось понять, как это сделать. В реальности там файл РФокс версии 5.13 https://f2h.io/2dxs9iteia9o
5. acanta 30.09.19 21:19 Сейчас в теме
Обычно возникает вопрос как будут распространяться разработки - в виде плагинов, библиотек или готовых приложений.
6. andreosh 102 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 189 01.10.19 09:54 Сейчас в теме
(7) вы правы, нужно быть энтузиастом, что бы тратить на это свое время... к сожалению, мы все вынуждены зарабатывать деньги и на энтузиазм сил и времени хватает не у многих... но без энтузиастов новое не пробьется...
pvlunegov; утюгчеловек; +2 Ответить
19. pvlunegov 161 19.04.20 18:59 Сейчас в теме
(6) Андрей, вы написали что РФокс свободно распространяемый. У вас на странице Github какая то очень старая версия. Там нет документации и очень мало примеров.
Прошу вас обновить вашу публикацию на GitHub, если возможно.
Ваш проект меня очень заинтересовал, хочется заценить, потестить, примерить в работе.
Заранее спасибо за ваши огромные труды!
20. andreosh 102 19.04.20 20:52 Сейчас в теме
https://www.youtube.com/watch?v=7JF5lgQcob8&list=PLo4sldcUomOqQ746OpzoD04Eaj7uBO9-U&index=2
Самые свежие версии в комментариях к последнему видео.
На GitHab запрещено exe и DLL выкладывать.
Последняя версия здесь https://f2h.io/bvi255a8a92a
8. acanta 30.09.19 23:58 Сейчас в теме
Нда. Если относиться к индусскому инглишу как к латыни в ботанике или итальянскому в музыке то вообще никаких шансов нет даже у 1с.
Но пока так к программированию не относятся, лет прошло мало.
Конечно, ленточки от советских печатных машинок на японские матричные принтеры это не вернет, а лазерники с картриджами это тааак сложно.. инструкций нет, в институте не изучают... Пичалька.
10. Perfolenta 189 01.10.19 09:07 Сейчас в теме
(8) на самом деле проблема только в неверии в свои силы... как вы думаете была ли "печалька" у Линуса Торвальдса, когда он первую версию в дохлый по тем временам интернет закинул? А изучали ли в институте первые версии Питона, например? Дело в том что нашлись в достаточном количестве энтузиасты, которые не ныли, а брали на себя часть трудностей автора... совершенствовали и распространяли... а у нас, со времен Петра Первого, распространяется какое-то западопоклонство... "вот немец-то голова, не то что наши!"
Русский язык отлично подходит для программирования, ни чуть не хуже английского... просто развивать надо свое, а не на заграницу молиться...
acanta; olejnikov_m; andreosh; утюгчеловек; +4 Ответить
12. Steelvan 01.10.19 12:23 Сейчас в теме
(10) западопоклонство самим Западом же здесь и распространяется, согласен
16. for_sale 816 20.10.19 11:04 Сейчас в теме
(12) да, согласен, везде агенты госдепа!!!11адинадин
13. acanta 01.10.19 16:04 Сейчас в теме
(10) проблема не в энтузиазме, а в терпении.
Норбеков и бизнес-молодость это тоже энтузиасты.
Но Фидо проиграло интернету потому что бабло заменяет энтузиазм и его в принципе можно напечатать, в отличие от божьей искры. У энтузиазма есть один роковой недостаток - он негибкий. Если клиенты морально не готовы ещё или наоборот, выявили какие то проблемы, есть необходимость развивать - энтузиаста практически невозможно поправить.
14. Perfolenta 189 01.10.19 18:15 Сейчас в теме
(13) не знаю причем тут Норбеков...
терпение необходимо автору, т.к. разработка может быть длительной, а успех совсем не очевидным...
а энтузиасты нужны на начальном этапе жизненного цикла, что бы морально поддержать автора и создать начальную экосистему... а в уже существующую экосистему могут потянуться и расчетливые "бизнесмены"...
да, вместо энтузиастов вполне пойдут реклама и маркетинг, но как известно, это не всем авторам по карману...
энтузиасты не могут, не станут и не должны обслуживать клиентов, это из другого мира...
Энтузиасты это люди с хорошей душой, которые видят, что если подставить плечо, то птичка полетит и это будет здорово....
17. Bassgood 1063 22.10.19 12:58 Сейчас в теме
(13)
бизнес-молодость это тоже энтузиасты.

Это самые крупные инфоцыгане, которые льют море воды и зарабатывают на этом кучу денег, а не энтузиасты...
Все они "бизнесмены", но почему то о их "бизнесах" поисковики ничего путевого не выдают, да и сами они ничего конкретного о них не рассказывают, ибо их в реальности и не существует ;)
9. andreosh 102 01.10.19 07:53 Сейчас в теме
Для написания прикладной программы в РФоксе нужно: 1) Хранить данные (dbf-файлы), 2) Отображать данные (создание экранных форм) 3) Обрабатывать и выводить данные на печать (отчеты).
Для хранения в РФоксе удобно использовать объект "ФункцииDBF",
Для отображения объекты: ФормаГлавная ФормаОкно Редактор Флажок СтрокаВвода Надпись Кнопка КомбинированныйСписок СписокСтрок Таймер Страницы ГруппаКнопок
ГруппаПереключателей Изображение Спиннер Фигура ТаблицаКарточки
Для отчетов - "ТабличныйОтчет", благодаря которому формировать отчеты на основании шаблонов Excel или LibreOffice (в зависимости, какой из этих объектов укажешь объекту "ТабличныйОтчет")
Кроме этого, с помощью объектов "ВебКлиентPHP" и "ВебСервер" можно организовать обмен файлами между приложениями по сети интернет или по локальной сети, а так же обновлять версии программ у пользователей через ВебСервер.
У РФокса самый низкий порог вхождения в программирование по сравнению с другими языками программирования.
pvlunegov; +1 Ответить
15. andreosh 102 11.10.19 15:02 Сейчас в теме
Создаем ВебСервер и работаем из РФокса через него с таблицами MySQL
https://youtu.be/1wZqFeNtDtk
РФокс версии 5.17 от 11.10.2019 https://f2h.io/munalzxsufoe
pvlunegov; +1 Ответить
18. acanta 22.10.19 13:29 Сейчас в теме
Коммерческий аналог службы занятости населения. Интересные тренинги проводят.
21. CXY 360 27.08.20 18:00 Сейчас в теме
Русская версия FoxPro была ещё в 90-х годах под DOS, и называлась она КАРАТ М. Работала безотказно и быстро на любой технике, а тогда это было очень важно.
Оставьте свое сообщение

См. также

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

OneScript Абонемент ($m)

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

1 стартмани

04.02.2015    78193    Evil Beaver    212    

Таблица значений - синтаксический сахар

Языки и среды v8 1cv8.cf Россия Абонемент ($m)

Ещё одна идея добавления "синтаксического сахара" в язык 1С для работы с коллекцией значения: Таблица значений.

1 стартмани

05.01.2020    2480    a45    12    

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

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

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

1 стартмани

31.07.2019    7379    Perfolenta    62    

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

OneScript v8 Абонемент ($m)

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

1 стартмани

03.11.2018    11435    blackhole321    19    

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

OneScript v8 Абонемент ($m)

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

1 стартмани

14.09.2018    31510    Vladimir Litvinenko    93    

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

OneScript v8 Абонемент ($m)

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

1 стартмани

27.06.2018    7538    blackhole321    0    

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

OneScript v8 Абонемент ($m)

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

1 стартмани

30.05.2018    8038    blackhole321    1    

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

Оптовая торговля Розничная торговля OneScript v8 УУ Абонемент ($m)

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

1 стартмани

16.04.2018    16663    blackhole321    33    

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

OneScript Абонемент ($m)

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

1 стартмани

28.03.2018    15661    blackhole321    14    

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

OneScript Абонемент ($m)

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

1 стартмани

25.03.2018    8892    blackhole321    2    

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

OneScript v8 1cv8.cf Абонемент ($m)

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

1 стартмани

02.03.2018    15353    blackhole321    33    

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

OneScript v8 1cv8.cf Абонемент ($m)

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

1 стартмани

23.02.2018    20623    blackhole321    69    

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

OneScript v8 Абонемент ($m)

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

1 стартмани

05.02.2018    14616    blackhole321    7    

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

OneScript v8 1cv8.cf Абонемент ($m)

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

1 стартмани

15.01.2018    18637    blackhole321    22