Форум программистов, компьютерный форум, киберфорум
Бета-тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14

C#.NStar

22.11.2020, 01:26. Показов 40353. Ответов 523
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С чего всё началось
Мой язык программирования развивается, в очередной раз меняя название. Пятое название после C↑ᶜC, C#++, C with stations и временного Unnamed2 имеет вид "C# .NStar". Это название не вызывает никаких ассоциаций со стрелками, с "симбиозом плюсов и шарпа", со "станционным программированием", а вызывает единственную - то, что этот язык - прямое продолжение C#. Теперь вы убедились, что этот язык - не пустая болтовня, одна версия уже увидела свет, поэтому надеюсь, что очередная презентация возможностей C# .NStar хоть и подвергнется критике, но не приведет ни к чему плохому. Вот что уже работает:
1. Пространства имен.
2. Ошибки списком строк - теперь отображение n ошибок не займет время, пропорциональное n2, и вообще я по максимуму убрал конкатенацию строк в цикле, что является экстремально важным признаком качества языка.
3. Списки - не только возврат списка, но и переменные списочных типов.
4. Индексы - последний и самый сложный из перечисленных пунктов. Такой код успешно работает:
Code
1
2
list(3) int a = (((1, 2, 3), (4, 5, 6), (7, 8, 9)), ((10, 11, 12), (13, 14, 15), (16, 17, 18)), ((19, 20, 21), (22, 23, 24), (25, 26, 27)));
return a[1, 2, 3];
Но для того, чтобы выложить версию, этого мало. Это просто презентация.
А вот несколько будущих возможностей:
1. Оператор switch с лямбда-выражением. Это невероятно мощная конструкция! Позволит убрать очень много дублирования в условиях. Вот два примера:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (task.StartsWith("Class "))
{
    return Action1(task.Substring("Class ".Length));
}
else if (task.StartsWith("Interface "))
{
    return Action2(task.Substring("Interface ".Length));
}
else if (task.StartsWith("Function "))
{
    return Action3(task.Substring("Function ".Length));
}
else if (task.StartsWith("Extent "))
{
    return Action4(task.Substring("Extent ".Length));
}
...
Code
1
2
3
4
5
6
7
8
return x => task == x + string s switch
{
    "Class " => Action1(s);
    "Interface " => Action2(s);
    "Function " => Action3(s);
    "Extent " => Action4(s);
    ...
};
Прошу обратить особое внимание на огромную мощь этой конструкции и написать, хотели бы вы ею воспользоваться или нет, и если нет, то почему.
2. Способ задания словаря будет отличаться от способа задания двумерного списка: ключ и значение будут разделяться оператором ":", а если словарь состоит из единственного элемента, доступного по всем ключам - достаточно указать один этот элемент. Пример:
Code
1
2
Dictionary[string, int] dic1 = ("Съешь": 1, "же": 2, "ещё": 3, "этих": 4, "мягких": 5, "французских": 6, "булок": 7, "да": 8, "выпей": 9, "чаю": 10, _: 0);
Dictionary[string, int] dic2 = -12345;
3. Оператор ![], позволяющий сменить внутренний тип коллекции без смены внешнего типа. Это позволит создать аналог LINQ нового поколения - Jaretorant, в котором не надо завершать каждое выражение функциями ToArray() или ToList(). Только посмотрите:
Code
1
2
3
4
() int oldList;
() real newList = oldList.TransformEach(x => 1r / x);
LinkedList[int] oldList2;
LinkedList[real] newList2 = oldList2.TransformEach(x => 1r / x);
А сама конструкция TransformEach записывается таким способом:
Code
1
2
3
4
5
6
7
8
9
10
Dictionary[(typename TSource, typename TCollection : IEnumerable[TSource], typename TDest), TCollection![TDest] Extent(TCollection source, Func[TDest, TSource] Transformator)] =
{
    TCollection![TDest] output = new TDest[source.Count()];
    int i = 0;
    for (TSource elem in source)
    {
        output[i++] = Transformator(elem);
    }
    return output;
}
P. S. Недавно я наткнулся на список торговых знаков Microsoft. Оказывается, там написано, что нельзя искажать, модифицировать или комбинировать с любыми словами, символами, изображениями или другими видами информации любые из этих торговых знаков. Но самих знаков немного: само слово "Microsoft", Windows, MSN, Bing, Skype, Microsoft Edge и еще один или два. C# там нет! Поэтому создать язык с названием C# .NStar мне ничего не мешает.


 Комментарий модератора 
Update от 09.02.2026


ПОБЕДА!!! C#.NStar достиг версии (Alpha RC) 0.9! Это первое приложение от Red-Star-Soft, когда-либо достигавшее подобной версии! (Фреймворк - это не приложение.) Теперь, надеюсь, я перестал быть "профессиональным недоделывателем"? И, надеюсь, я получу тест?
1. Работа с файлами.
2. При техническом крахе сохраняется лог во временную папку.
3. Потоки. Причем нет этого ужасного разбиения на две воюющих стороны - синхронные и асинхронные - переключение контекста происходит автоматически.
4. "Швейцарский нож" (оператор is, сопоставление шаблонов). Пока что реализованы семь шаблонов: константа, тип, тип с объявлением переменной, var с объявлением переменной, шаблон сравнения (больше/меньше), пустой шаблон (_) и составной шаблон - несколько шаблонов, объединенных операторами and, or, not. Есть одна замеченная, но не исправленная ошибка, что попытка применить шаблон сравнения не к числу вызывает технический крах. Возможно, в будущем исправлю.
5. Сокращенный оператор for - можно написать так:
Code
1
2
3
4
for (i in collection)
{
    ...
}
- или так:
Code
1
2
3
4
for (i in a..b)
{
    ...
}
6. Сокращенные константы - если есть ключевое слово const, необзательно писать var или тем более полный тип.
7. Записи (Record - с прописной буквы). В отличие от C#.NET, это по терминологии Мартина чистые структуры данных, имеющие свойства, совпадащие по именам и типам с параметрами, конструктор из эих параметров и стандартные методы Equals и GetHashCode и неспособные иметь другие методы и свойства.
8. Структуры (Struct - с прописной буквы).
9. Прототип полиморфизма в виде словарей от рекурсивного типа к классу, одним из следующих способов (ключевое слово Class в случае полиморфизма обязтельно брать в скобки):
Code
1
2
3
4
const [typename T, (Class)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T, (Class)] ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Словари от чисел, строк или других типов, кроме typename, пока лучше даже не пытаться создавать - они не работают!
10. Обработка исключений:
Code
1
2
3
4
5
6
7
8
try
{
    ...
}
catch (ExceptionType var) if (condition) // if, а не when
{
    ...
}
В текущей версии доступен базовый набор исключений: Exception, ArgumentException (включает в себя ArgumentNullException и ArgumentOutOfRangeException, хотя явно указать их нельзя), IndexOutOfRangeException, InvalidOperationException, NullReferenceException и IOException.
11. И самое невероятное - ПАКЕТНЫЙ МЕНЕДЖЕР!!! Вы можете подключить любой пакет, доступный в публичном репозитории NuGet - достаточно зайти в настройки и указать его имя.
Рабочие примеры кода на C#.NStar, в дополнение к предыдущим версиям:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Threading;
Class MyClass
{
    Constructor()
    {
    }
    int Function Sync()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async1()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async2(int n)
    {
        return n * n;
    }
}
 
static Class MyClass2
{
    Func[Task[int], int] MyFunc = new MyClass().Async2;
}
 
return new MyClass().Async1();
Code
1
2
3
object item = "Welcome!";
if (item is string text)
    return text;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
abstract Class BaseStack
{
    required typename T { get, init };
    
    abstract T Function Peek();
    abstract T Function Pop();
    abstract null Function Push(T item);
}
 
const [typename T, (Class : BaseStack[T])] Stack = new(
{
    private () T list = new(32);
 
    T Function Peek()
    {
        return list[^1];
    }
 
    T Function Pop
    {
        return list.GetAndRemove(list.Length - 1);
    }
 
    null Function Push(T item)
    {
        list.Add(item);
    }
});
 
BaseStack[int] intStack = new Stack[int]();
intStack.Push(5);
intStack.Push(10);
var x = (intStack.Pop(), intStack.Peek());
BaseStack[string] stringStack = new Stack[string]();
stringStack.Push("A");
stringStack.Push("B");
var y = (stringStack.Pop(), stringStack.Peek());
return (x, y);
Code
1
2
3
4
5
6
() int list = new();
for (i in Chain(0, 10)) while (i * i % 20 < 10)
{
    list.Add(i);
}
return list;
Code
1
2
3
4
5
6
int n = 0;
for (i in 1..1000)
{
    n++;
}
return n;
Code
1
2
3
Record Pair(string Name, int Value);
Pair pair = new("Status", 100);
return pair;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const [typename T : IComparable[T], (Class)] Repository = new(
{
    private () T items = new();
 
    null Function Add(T item)
    {
        items.Add(item);
    }
 
    T Function GetMax()
    {
        if (items.Length == 0)
            return null;
        return Max(items);
    }
});
 
Class Product : IComparable[Product]
{
    int Id;
    int Function CompareTo(Product product)
    {
        return Id.CompareTo(product.Id);
    }
}
 
var repo = new Repository[Product]();
repo.Add(new Product[1]());
repo.Add(new Product[5]());
return repo.GetMax().Id;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.IO;
try
{
    () int list = (1, 2, 3);
    return list.IndexOf(1, 5);
}
catch (ex) if (ex is not ArgumentException)
{
    return 1;
}
catch (ex)
{
    return "" + ex.Message;
}
return 2;
P. S. Можно также скачать из облаков, ссылка на странице версии.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2020, 01:26
Ответы с готовыми решениями:

Мелкомягкие мыслят местами точно как и я или следят за моим компьютером и крадут идеи, записанные на нем для C# .NStar?
Кто знает? Вот неполная цитата из файла, созданного в феврале этого года: А тут оказывается, что...

Стал ли .NStar в меньшей степени "сборной солянкой"?
sau, это тема для вас! Хотя обоснованные, не содержащие трёпа и троллинга мнения других...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
523
 Аватар для Noname2331
97 / 89 / 10
Регистрация: 22.12.2024
Сообщений: 603
10.02.2026, 17:30
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Так, только наоборот.
Да, я со стороны программиста-юзера смотрел на эту вещь. Со стороны транслятора будет наоборот.

Короче вам надо работать над строгими определениями в своих документациях, чтобы кто-то понял суть, иначе никто не будет вникать даже.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 17:37  [ТС]
Цитата Сообщение от Noname2331 Посмотреть сообщение
Короче вам надо работать над строгими определениями в своих документациях, чтобы кто-то понял суть, иначе никто не будет вникать даже.
Вообще-то мой язык и его транслятор для новичков, а для них формальные, математически строгие определения - раздражающий мусор. Я старался придерживаться как раз неформального, понятного среднему представителю молодежи, а не "динозавров", стиля (да, есть непонятные вещи, как лямбда-выражения, но их никак более понятно не объяснить).
0
 Аватар для Noname2331
97 / 89 / 10
Регистрация: 22.12.2024
Сообщений: 603
10.02.2026, 17:37
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
P. S. Можно также скачать из облаков, ссылка на странице версии.
И определение термина "облако" тоже потрудитесь погуглить и заучить. Пишите в строку поиска слово и добавляйте "в информатике".

Я так понимаю, это вы создали второй аккаунт и постили тут ежедневные обновление программы криптошифрования с "собственным уникальным алгоритмом", который полностью писал ИИ. Кажется, ту тему удалили и автора забанили. Там тоже везде эти мнимые "облака" фигурировали.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 17:39  [ТС]
Цитата Сообщение от Noname2331 Посмотреть сообщение
Я так понимаю, это вы создали второй аккаунт
Поосторожнее с такими заявлениями!
0
 Аватар для Noname2331
97 / 89 / 10
Регистрация: 22.12.2024
Сообщений: 603
10.02.2026, 17:39
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Я старался придерживаться как раз неформального, понятного среднему представителю молодежи
Ваш неформальный язык вымышленной вселенной в песочнице понятен только вам самим.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 17:43  [ТС]
Цитата Сообщение от Noname2331 Посмотреть сообщение
И определение термина "облако" тоже потрудитесь погуглить и заучить.
Яндекс.Диск - это как раз облако, точнее, облачное хранилище.

Добавлено через 2 минуты
Noname2331, я предупреждаю: еще пара подобных заявлений - и я прекращу с вами общаться.
0
 Аватар для Noname2331
97 / 89 / 10
Регистрация: 22.12.2024
Сообщений: 603
10.02.2026, 17:43
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Поосторожнее с такими заявлениями!
Ну извините, если это не вы были. Очень уж почерк похож.
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3983 / 2154 / 833
Регистрация: 13.03.2010
Сообщений: 7,057
10.02.2026, 17:48
Noname2331, не, это не он был. Там молодой вайбкодер.
1
 Аватар для Noname2331
97 / 89 / 10
Регистрация: 22.12.2024
Сообщений: 603
10.02.2026, 17:50
Цитата Сообщение от gogolik Посмотреть сообщение
Noname2331, не, это не он был. Там молодой вайбкодер.
Тогда приношу официальные извинения за такие догадки. Флешбек ударил, там тоже C#, тоже базовые вещи челу пытались донести, а он все игнорил и одно и то же толдычил - качайте в облаке, качайте в облаке.
1
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 17:52  [ТС]
Цитата Сообщение от gogolik Посмотреть сообщение
не, это не он был.
А такие явно оскорбительные заявления вообще разрешены, правила на них не действуют?
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3983 / 2154 / 833
Регистрация: 13.03.2010
Сообщений: 7,057
10.02.2026, 17:54
Etyuhibosecyu, не вижу оскорблений.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 17:55  [ТС]
Цитата Сообщение от gogolik Посмотреть сообщение
не вижу оскорблений.
Ясно. Значит, просто перестану общаться, если подобный стиль продолжится.
0
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3983 / 2154 / 833
Регистрация: 13.03.2010
Сообщений: 7,057
10.02.2026, 17:57
Etyuhibosecyu, вы сами просите критику, а потом обижаетесь на неё.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 18:26  [ТС]
Цитата Сообщение от gogolik Посмотреть сообщение
вы сами просите критику, а потом обижаетесь на неё.
Ладно, не хочу спорить, спасибо и за это.

Добавлено через 27 минут
Royal_X, вот вы, насколько я понимаю, эксперт - подскажите, нормальным стилем написана документация (1, 2, 3, 4)? Не "очень куцая"? И культурная, без "двачевского жаргона"?
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
10.02.2026, 18:28
Etyuhibosecyu, я не эксперт по документациям. Но "введение для чайников" это как раз жаргон.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 18:38  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
Но "введение для чайников" это как раз жаргон.
Само слово "чайник"? Ну, мне кажется, это слово понятно среднему человеку, не то что какое-нибудь AFAIK или ECB.

Добавлено через 5 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
я не эксперт по документациям.
Ну я надеюсь, вам хоть все там понятно? Или какие-то описания неприемлемо "корявые"?
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6339 / 3072 / 1054
Регистрация: 01.06.2021
Сообщений: 11,802
10.02.2026, 18:48
Etyuhibosecyu, документация адекватна уровню аудитории, для которой предназначен данный транслятор.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 18:56  [ТС]
Цитата Сообщение от Royal_X Посмотреть сообщение
документация адекватна уровню аудитории, для которой предназначен данный транслятор.
То есть, адекватна уровню "новичок"? Или что-то другое? Теперь, надеюсь, вы знакомы с синтаксисом, сможете обнаружить баги?

Добавлено через 5 минут
Welemir1, а вы хотя бы в честь альфы сможете обнаружить баги? Или я должен тестировать в одиночестве? Только человек со стороны может тестировать непредвзято...
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7393 / 4820 / 1246
Регистрация: 30.03.2015
Сообщений: 13,703
Записей в блоге: 29
10.02.2026, 19:07
так это как то не логично, тема то называется бета-тестирование, будет бета - будет и тестирование

по доке -невозможно читать, ты посмотри доку любого языка программирования как и что там пишут. Сначала кратко про язык мол ООП язык общего назначения для того и для того, тут же пара примеров кода, чтобы оценить. Я понимаю почему этого нет, придется же тогда сформулировать зачем это вообще нужно даже тебе.

Я зашел в Классы и структуры, я допустим новичок, а там ничего про классы и структуры и в чем их разница. Я ждал каких то теорирй, определений, введений, а мне говорят
BaseDictionary[TKey, TValue, TCertain]
Общий базовый класс

Я зашел в Типы и вообще не понял что это, например про строку наисано что это "не массив символов", а что? на чем она построена, как мне ее представлять?

или
sbyte
Был удален из C#.NStar как не имеющий смысла - коллекции этого типа никто из нас нигде в реальных программах не видел, а вне коллекций все равно выравнивается в памяти как int, а то и long int.
тогда нафига он тут вообще?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
364 / 182 / 41
Регистрация: 13.07.2017
Сообщений: 4,852
Записей в блоге: 14
10.02.2026, 19:16  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
будет бета - будет и тестирование
Ну, бета будет не скоро...
Цитата Сообщение от Welemir1 Посмотреть сообщение
Я зашел в Классы и структуры, я допустим новичок, а там ничего про классы и структуры и в чем их разница.
В чем разница классов и структур, написано здесь, абзац "Struct". А разделы называются по категориям конструкций, которые в них перечислены, а не по конкретным конструкциям, иначе название будет на несколько страниц. Могу разве что написать "о разнице между классами и структурами см. здесь" и ссылка.
Цитата Сообщение от Welemir1 Посмотреть сообщение
например про строку наисано что это "не массив символов", а что? на чем она построена, как мне ее представлять?
А int - это что? На чем он построен, как его представлять? Так же и со строкой - это примитивные типы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru