РусскийФокс. Настройка NotePad++, 1C-подобные функции и операторы и создание объектов

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

Программирование - Практика программирования

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

11
Новый объектно-ориентированный русскоязычный 1С-подобный язык программирования РусскийФокс. Создание объектов и настройка NotePad++. GitHub https://github.com/UfaScript/RusFox

В данной статье кратко затрону сразу несколько тем по языку программирования РусскийФокс. Более подробно можно почитать в руководстве по РусскийФокс и попробывать примеры во вложении к данной статье. Особо интересно будет почитать про создание объектов в РусскийФокс, так как я декларирую РусскийФокс, как пока единственный русскоязычный объектно-ориентированный язык программирования.

Желающие ускорить разработку могут проголосовать за мой доклад о РусскомФоксе https://event.infostart.ru/2018/agenda/?sort=new. Чем больше сторонников данной разработки, тем выше мотивация.

Кратко расскажу, как настроить Notepad++ для работы (подробное описание в руководстве по РускийФокс см.вложение). В настройках перечислены все основные операторы и функции. Я умышлено 1С-подобные функции и операторы выделил в отдельную группу, так как их описание и метод работы вы можете изучать по документации и учебникам 1С. При желании 1С-подобные операторы и функции вы можете выделять особым цветом. Умышлено не предлагаю закачать готовую настройку, так как полезней научиться настраивать NotePad++ под свои нужды. Лично я не нашел в интернете нормального описания для самостоятельной настройки последней версии.

Для настройки выделения цветом в NotePad++ следует выбрать меню «Синтаксисы» - «Задать свой синтаксис». Назовем его «RusFox».

Начнем с последней вкладки «Операторы и разделители». Разделитель 1 ставим символ двойные кавычки в поле «Открытие» и в поле «Закрытие». Разделитель 2 аналогично ставим одинарные кавычки. Для строковых значений вы можете применять одинарные или двойные кавычки. По кнопке «Стиль» настраиваем шрифт и цвет фона и символов. В Операторы один заносим строку «- " ( ) * , ; [ \ ] + < = > %» и настраиваем стиль.

На вкладке «Комментарии и числа» Комментарий строки в поле «Открытие» заносим «//» и настраиваем стиль.

Больше всего настроек на вкладке «Ключевые слова». 1-ая группа включить Префикс режим и копируем туда 1С-подобные операторы:

Список 1С-аналогов ключевых операторов (24 оператора);

КОНЕЦЕСЛИ; ЕСЛИ ИНАЧЕ КОНЕЦПРОЦЕДУРЫ КОНЕЦФУНКЦИИ ТОГДА ПРОЦЕДУРА ФУНКЦИЯ ВОЗВРАТ ДЛЯ ПО КОНЕЦЦИКЛА; ЦИКЛ И ИЛИ НЕ ПЕРЕМ ПОКА КОНЕЦПОКА; ПРЕРВАТЬ; ПРОДОЛЖИТЬ; ПОПЫТКА ИСКЛЮЧЕНИЕ КОНЕЦПОПЫТКИ;

Настраиваем стили для всех групп с 1-ой по 6-ую.

2-ая группа включить префикс режим и скопировать те же операторы, только в привычном для 1С-ников виде, которые поддерживаются РусскийФоксом:

КонецЕсли; Если Иначе КонецПроцедуры КонецФункции Тогда Процедура Функция Возврат Для По КонецЦикла; Цикл Пока Мин( Макс(

3-я группа и далее префикс режим выключен, в нее копируем список 1С-подобных функций, которые понимает РусскийФокс. Я их выделяю синим цветом. Список аналогов функций 1С (44 функции):

СокрЛП Сообщить СтрНачинаетсяС СтрЗаканчиваетсяНа Строка Вопрос Число ВРег НРег КодСимвола Символ ТекущийКаталог ФайлСуществует ЗакрытьФайл СтрНайти ТекущаяДата ДобавитьМесяц ДеньНедели ДеньГода НеделяГода Год Месяц День Дата Час Минута Секунда НачалоГода НачалоКвартала НачалоМесяца НачалоНедели НачалоДня НачалоЧаса НачалоМинуты КонецГода КонецКвартала КонецМесяца КонецНедели КонецДня КонецЧаса КонецМинуты ВвестиЗначение Цел Окр

4-ая группа — это операторы, которые не имеют аналогов в 1С. Пояснения по данным операторам см.в руководстве «РусскийФокс»

НАБОР_УСЛОВИЙ ЛПЕРЕМ ПАРАМЕТРЫ ЛОЖЬ ИСТИНА ОПИСАНИЕ_МАССИВА КАК ЗАЩИЩЕННОЕ_СВОЙСТВО ОПРЕДЕЛИТЬ_ОБЪЕКТ ЭТОТ_ОБЪЕКТ КОНЕЦ_ОПРЕДЕЛЕНИЯ_ОБЪЕКТА БАЗОВЫЙ_ОБЪЕКТ _ПРИ_ПОЛУЧЕНИИ_ЗНАЧЕНИЯ_СВОЙСТВА _ПРИ_ИЗМЕНЕНИИ_ЗНАЧЕНИЯ_СВОЙСТВА КОНСТАНТА ОТМЕНИТЬ_КОНСТАНТУ МЕТОД_РОДИТЕЛЯ СКРЫТОЕ_СВОЙСТВО ПРИ_ИНИЦИАЛИЗАЦИИ_ОБЪЕКТА ПРИ_УДАЛЕНИИ_ОБЪЕКТА

5-ая и 6-ая группа — это функции, которые не имеют аналогов в 1С. Пояснения по данным операторам см.в руководстве «РусскийФокс»

ОбратнаяСтрока СтрокуМеждуРазделителями СтрЧислоВхождений СравнитьСтрокуПоМаске ОткрытьФайлДляЧтения ЧитатьСтрокуИзФайла ВернутьКоличествоДнейВМесяце НазваниеМесяца СтрокаЗаПериод ПолучитьТекущуюРазрядностьЧисел УстановитьРазрядностьЧисел ГрадРад РадГрад Тангенс Арктангенс Арксинус Синус Косинус Арккосинус Экспонента ЧислоПи ПсевдоСлучайноеЧисло КоличествоВМассиве КоличествоСтрокВМассиве КоличествоКолонокВМассиве ВставитьСтрокуВМассив СодержимоеМассиваВСтроку СортироватьМассив УдалитьСтрокуИзМассива ВыборИзМассива СписокФайловВМассив НовыйМассив

НовыйОбъект УдалитьОбъект КонецФайла ПоследняяЗапись

На вкладке «Стандартный» можно настроить сворачивание строк, а так же указать расширение «rus», чтоб при открытии файлов с таким расширением подключался стиль «RusFox».

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

Множество более редких функций РусскийФокса содержатся в объектах, но этот список будет слишком обширным потому смотрите его в руководстве «РусскийФокс».

Методы работы с массивами в РусскомФоксе отличаются от 1С.

А теперь я расскажу, как создавать и наследовать объекты на языке программирования РусскийФокс.

Описание объекта начинается с оператора ОПРЕДЕЛИТЬ_ОБЪЕКТ, а заканчивается оператором КОНЕЦ_ОПРЕДЕЛЕНИЯ_ОБЪЕКТА

ОПРЕДЕЛИТЬ_ОБЪЕКТ Объект1 КАК БАЗОВЫЙ_ОБЪЕКТ

    ЗАЩИЩЕННОЕ_СВОЙСТВО Свойство2 // К этому совойству нельзя обратиться извне, но можно из потомков

    СКРЫТОЕ_СВОЙСТВО Свойство4 // К этому совойству нельзя обратиться извне и нельзя из потомков

Свойство1 = 'Любой текст'

Свойство2 = 2 // Это защищенное свойство

Свойство3 = 3

Свойство4 = 4 // Это скрытое свойство

 

ФУНКЦИЯ КтоЭто()

КОНЕЦФУНКЦИИ "Это Объект1"

 

ФУНКЦИЯ ПростаяФункцияОбъекта

КОНЕЦФУНКЦИИ 'Это простая функция'

 

ФУНКЦИЯ Свойство3_ПРИ_ПОЛУЧЕНИИ_ЗНАЧЕНИЯ_СВОЙСТВА

Сообщить('Это особая функция, которая вызывается, если вы пытаетесь получить значение свойства Свойство3')

ВОЗВРАТ ЭТОТ_ОБЪЕКТ.Свойство3 // вы можете не возвращать свойство и его значение извне нельзя будет получить

КОНЕЦФУНКЦИИ

 

ФУНКЦИЯ Свойство3_ПРИ_ИЗМЕНЕНИИ_ЗНАЧЕНИЯ_СВОЙСТВА(Значение)

Сообщить('Это особая функция, которая вызывается, если вы пытаетесь присвоить значение свойству Свойство3')

ЭТОТ_ОБЪЕКТ.Свойство3 = Значение // Вы можете не присваивать, тогда изменить свойство извне будет невозможно

КОНЕЦФУНКЦИИ

 

ФУНКЦИЯ ИзменитьСвойство2(Значение)

ЭТОТ_ОБЪЕКТ.Свойство2 = Значение

КОНЕЦФУНКЦИИ

 

ФУНКЦИЯ ПрочитатьСвойство2

КОНЕЦФУНКЦИИ ЭТОТ_ОБЪЕКТ.Свойство2

КОНЕЦ_ОПРЕДЕЛЕНИЯ_ОБЪЕКТА

Оператор ЗАЩИЩЕННОЕ_СВОЙСТВО запрещает доступ и изменение перечисленных после него свойств за пределами класса, сам класс и потомки доступ имеют.

Оператор СКРЫТОЕ_СВОЙСТВО запрещает доступ вне класса даже потомкам.

Оператор _ПРИ_ПОЛУЧЕНИИ_ЗНАЧЕНИЯ_СВОЙСТВА вынуждает вызывать данную функцию для свойства, которое названо вначале названия функции (в данном случае Свойство3). Когда кто-то извне пытается прочитать значение свойства, будет вызвана данная функция.

Оператор _ПРИ_ИЗМЕНЕНИИ_ЗНАЧЕНИЯ_СВОЙСТВА вынуждает вызывать данную функцию для свойства, если кто-то извне пытается записать значение в свойство.

Для защищенного свойства2 мы вынуждены написать функции доступа, иначе к нему нельзя будет обратиться извне.

Создадим потомка объекта «Объект1»

ОПРЕДЕЛИТЬ_ОБЪЕКТ Объект2 КАК Объект1

ФУНКЦИЯ ПРИ_ИНИЦИАЛИЗАЦИИ_ОБЪЕКТА()

Сообщить("При создании объекта вызывается данная функция")

КОНЕЦФУНКЦИИ

ФУНКЦИЯ КтоЭто()

КОНЕЦФУНКЦИИ "Это Объект2, который создан от "+МЕТОД_РОДИТЕЛЯ()

ФУНКЦИЯ ПРИ_УДАЛЕНИИ_ОБЪЕКТА()

Сообщить("При удалении объекта вызывается данная функция")

КОНЕЦФУНКЦИИ

КОНЕЦ_ОПРЕДЕЛЕНИЯ_ОБЪЕКТА

В объекте потомке мы переопределили метод КтоЭто(), но внутри его вызвали метод родителя оператором МЕТОД_РОДИТЕЛЯ()

В объекте потомке мы создали функцию ПРИ_ИНИЦИАЛИЗАЦИИ_ОБЪЕКТА(), которая будет вызываться всякий раз при создании объекта2. Еще мы создали функцию ПРИ_УДАЛЕНИИ_ОБЪЕКТА(), которая будет вызываться при удалении объекта.

Возможно, когда в 1С или в 1Script можно будет создавать объекты, то разработчики воспользуются моим синтаксисом, чтоб мне не переписывать свой синтаксис под них ;-)

11

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

Наименование Файл Версия Размер
РусскийФокс. Настройка NotePad++, 1C-подобные функции и операторы и создание объектов.:
.rar 5,40Mb
05.07.18
1
.rar 2.0 5,40Mb 1 Скачать

См. также

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

Комментарии
Избранное Подписка Сортировка: Древо
1. Timur.V 53 06.07.18 11:29 Сейчас в теме
Интересно, легко ли будет найти работу школьнику, программирующем на этом языке?
2. andreosh 96 06.07.18 13:00 Сейчас в теме
Это же 1С-подобный язык. Научившись программировать на Русском Фоксе, он легко перейдет на 1С. Но реально это будет самый удобный язык для системных админов, так как будут реализован язык командной строки Windows. Он станет русскоязычным ООП языком программирования подобием Ruby. https://ru.wikipedia.org/wiki/Ruby
cleaner_it; +1 Ответить
7. blackhole321 1003 06.07.18 18:32 Сейчас в теме
(2)
о же 1С-подобный язык. Научившись программировать на Русском Фоксе, он легко перейдет на 1С. Но реально это будет самый удобный язык для системных админов, так как будут реализован язык командной строки Windows. Он станет русскоязычным ООП языком программирования подобием Ruby.

А язык PowerShell он будет реализовывать для тех админов, кто не осилил 1С?
8. andreosh 96 07.07.18 11:14 Сейчас в теме
PowerShell так же удобнее осваивать на русском языке. Пишешь на русском, а РусскийФокс запускает команды PowerShell и получает результаты.
9. nomadon 363 08.07.18 15:04 Сейчас в теме
(2) «так как будут реализован язык командной строки Windows» сколько видел админов - в винде gui в nix bash, это всеравно что сишника заставить именовать переменные по-русски
10. andreosh 96 08.07.18 15:36 Сейчас в теме
Я так же не пользовался русским языком, пока не начал программировать на 1С. Сначала казалось неудобно, а потом заметил, что гораздо комфортней и запоминается лучше.
Steelvan; +1 Ответить
3. acsent 1136 06.07.18 13:15 Сейчас в теме
есть же 1сскрипт. В чем преимущество этого?
4. andreosh 96 06.07.18 13:30 Сейчас в теме
Хотя бы тем, что РусскийФокс реально ООП, а OneScript можно создавать только подобие объектов по технологии, которую я придумал см.мою статью "Как сделать OneScript ООП" К тому же в Русском Фоксе будут экранные формы со всеми элементами, включая объект Grid. А его недостаток в том, что он будет работать только под Windows. К тому же Русский Фокс, как и FoxPro реальный интерпретатор, способный выполнять куски собственного кода сгенерированного программно. Русский Фокс с DLL-файлами занимает всего около 15Мб и его не надо инсталлировать.
cleaner_it; +1 Ответить
5. starik-2005 1864 06.07.18 13:56 Сейчас в теме
(4)
Русский Фокс с DLL-файлами занимает всего около 15Мб и его не надо инсталлировать.
А с .so он сколько занимает?
6. andreosh 96 06.07.18 14:39 Сейчас в теме
Все что надо для работы Русского Фокса + примеры и Руководство находится в архиве 5.5 Мб в закачке прилагаемой к данной статье
11. artbear 1133 17.07.18 10:20 Сейчас в теме
(4) я сам любитель ООП, но в OneScript отличная объектная модель, и не особо нужен весь набор ООП. часто хватает и "утиного" интерфейса.
В итоге превосходно обходимся без чистого ООП.
12. andreosh 96 17.07.18 11:33 Сейчас в теме
Подобие ООП можно использовать и в OneScript. Я писал статью по данной теме (см.мои статьи на ИнфоСтарте) и создавал библиотеку UfaScript для OneScript, но в onescript проблема с интерфейсом и в целом работать сложнее (уровень должен быть выше, чем для работы с РускийФокс). Для простых программ можно обходится без ООП, а для создания крупных проектов без ООП сложно. Это особенно хорошо видно по исходникам 1С, проект БСП. Они создают портянки взаимопересекающегося кода, потому что нет возможности создавать объекты.
Оставьте свое сообщение