Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,159
Записей в блоге: 2

Написать современно

06.11.2025, 13:50. Показов 14456. Ответов 154
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день

Есть такой фрагмент

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
const char * singleC = strstr(src, "//");
const char * multiC = strstr(src, "/*");
const char * eol = strstr(src, "\n");
 
const char * min = nullptr;
if (singleC) min = singleC;
if (multiC && (!min || (multiC < min))) min = multiC;
if (eol && (!min || (eol < min))) min = eol;
 
if (!min) return;
 
if (min == singleC) {
 ...
}
 
if (min == multiC) {
 ...
}
 
if (min == eol) {
 ...
}
Бросается в глаза что код примитивный (тупой, убогий, говнокод и.т.п. - как хотите). Кроме того, его можно существенно ускорить.

Хорошо, как написать грамотно, современно? И заодно универсально, чтобы работал не только с char*

Спасибо
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.11.2025, 13:50
Ответы с готовыми решениями:

Каковы современные решения написания программ?
Уже пол года как изучаю с++. За это время решил не мало задачек и перечитал литературы. Писал все...

Как создают современные компьютерные игры?
Интересно, как создают современные компьютерные игры?? То есть на каком языке программирования?? Я...

Современный интерфейс в C++ Builder
Что используют программисты для создания современного интерфейса в C++ Builder XE4? Ведь сейчас,...

154
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
17.11.2025, 15:30
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Royal_X Посмотреть сообщение
очень старых версиях стандарта, типа С++11
уже нет.

даже древний сфмл(эталон ++проектирования) переписали на C++17 )

но!

но есть огромное сишное легаси ...

+ без устали пополняющаяся армия упоротых сишников,
благодаря неправильному обучению школьников программированию)
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
17.11.2025, 15:41
Цитата Сообщение от XLAT Посмотреть сообщение
даже древний сфмл переписали на C++17 )
конечно, в 2025 году С++17 это уже не какая-то там экспериментальная или новая версия, а самая обычная, которая подходит для повседневных задач.

Имею в виду, что C++17 это дефолтным режим, начиная с GCC 11, а сегодня крайняя версия это GCC 15.2.

Но вот у MSVC до сих пор дефолтная это С++14.

***
Ты не поверишь, но многие еще пишут на всяких С++11. Пишут и не краснеют) А SFML я не назвал бы древним. Другие библиотеки еще древнее, а SFML наоборот старается не отставать от инноваций. К тому же, новый SFML (3-я версия) избавился от многих велосипедов в пользу стандартной библиотеки. Другие, как Qt, стараются везде делать свои аналоги, а SFML, наоборот, там, где это возможно, посылает к стандартной библиотеке.

Пример перехода на стандартную библиотеку в 3-й версии:
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
17.11.2025, 15:53
Цитата Сообщение от Royal_X Посмотреть сообщение
Но вот у MSVC до сих пор дефолтная это С++14.
у них заговор против ++ в пользу шарпа)

Цитата Сообщение от Royal_X Посмотреть сообщение
я не назвал бы древни
тогда назови QString древним гуаном мамонта,
ибо он появился ещё во времена стлпортов Степанова или даже раньше.

а щас просто вынужден оставаться в кутэ-инфре для консистентности этой кутэ-инфры...
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
17.11.2025, 16:05
Цитата Сообщение от XLAT Посмотреть сообщение
у них заговор против ++ в пользу шарпа)
есть языки, которые упорно контролируются их создателями - корпорациями. А вот C# это нормальный язык, хоть и создан корпорацией. Во-первых, он стандартизирован. Во-вторых, даже несмотря на то, что майрософтовские шарповые компиляторы имеют MIT лицензию, что неплохо, есть возможность пользоваться даже Mono или DotGNU, которые не имеют никакого отношения к Microsoft и являются свободным ПО. Поэтому у этого языка очень хорошее будущее и это неплохая замена Java. Причем, шарп не только сейчас язык номер 1 для создания современных приложений для винды, но и номер 1 для создания игр, учитывая, что самый популярный в мире игровой движок Unity использует его, да и на Godot тоже чаще шарп выбирают, особенно, студии.

Т.е. C# это не очередное зло от корпораций, как, например, формат DOCX от Microsoft, или FBX от Autodesk.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
17.11.2025, 16:33
Цитата Сообщение от XLAT Посмотреть сообщение
видно что формат в минусе
я вот проверил тут, пишет, что format быстрее в 2,5 раза конкретно для примера выше



Так что, я и дальше буду предпочитать format. Конечно, в каких-то случаях, возможно, он будет проигрывать, но гнаться за какими-то миллисекундами это бред, особенно, когда разница заметна только при вызове в миллион раз. format выигрывает и в читаемости кода и в удобстве и это неоспоримый факт.
Если же писать как Наталья8 и не использовать такие современные вещи как format, то точно можно превратиться в сишника)
0
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,159
Записей в блоге: 2
17.11.2025, 18:33  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
Когда вы передаете строковый литерал "123" в функцию,
Строковый литерал - это в учебном примере. Обычно текст приходит из файла/потока.
Цитата Сообщение от XLAT Посмотреть сообщение
потому что отсутствует достойная задача)
Смотря как подходить к задаче. Никто не мешал написать нормальный, общий find/replace принимающий 2 функции (функтора). Первая возвращает view которая или кандидат на замену или то что до нее. Вторая замещает формируя выходную строку (может пустая если только find). Так выгоды вьюшки могли быть показаны на деле, и код сам собой стал бы гораздо современнее. Хотя особо прорывной/революционной такую технику не назвать, раньше управлялись парой позиция + длина.
Цитата Сообщение от XLAT Посмотреть сообщение
тут базовый вопрос:
умеет ли std::stoul(number) работать с string_view ???
Строго говоря нет, т.к. вьюшка не гарантирует нулевой терминатор. Ход мысли "не туда". Пытаясь зарядить stoul мы тем самым признаем что по сути работаем с тем самым "допотопным" char*, а от этого наоборот, надо уходить
0
Just Do It!
 Аватар для XLAT
4220 / 2684 / 656
Регистрация: 23.09.2014
Сообщений: 9,236
Записей в блоге: 3
17.11.2025, 20:34
Цитата Сообщение от Igor3D Посмотреть сообщение
Строковый литерал - это в учебном примере. Обычно текст приходит из файла/потока.
я уже всё выше написал:
Цитата Сообщение от XLAT Посмотреть сообщение
но есть огромное сишное легаси ...
вместо флуда можно было бы сделать Совместно мелкий прожэкт,
но вы такое не одобряете.

я флуд одобряю, но если в меру.

Цитата Сообщение от Igor3D Посмотреть сообщение
Строго говоря нет, т.к. вьюшка не гарантирует нулевой терминатор.
это(может обходиться без нуля) её основное достоинство.

Цитата Сообщение от Igor3D Посмотреть сообщение
stoul
можно переписать с учетом всех возможностей stoul, но будет уже не так красиво.

помним заповедь про преждевременную оптимизацию ...

код должен быть в первую очередь красивым, а остальное уже потом ...

зачем?
чтобы любой мог его прочитать с меньшим риском не надорвать зрение...

зачем?
да - вам это не нужно - вы кодер-одиночка...

Цитата Сообщение от Royal_X Посмотреть сообщение
я вот проверил
ммм,
тут парадокс,
но я не могу не верить своим глазам...

разумеется, речь не про std::strinstream, а про std::string

Royal_X,
в целом ты прав -
я для себя уже сделал(год назад) установку - C++20 всегда и везде,
но в теме С++ для начинающих, где доминируют сишкошкодеры, это не обязательно.
0
1977 / 833 / 115
Регистрация: 01.10.2012
Сообщений: 5,159
Записей в блоге: 2
17.11.2025, 20:57  [ТС]
Цитата Сообщение от XLAT Посмотреть сообщение
вместо флуда можно было бы сделать Совместно мелкий прожэкт,
но вы такое не одобряете.
Почему не одобряю? Но такой проект должен быть хорошо продуман, просто энтузиазм быстро кончается
Цитата Сообщение от XLAT Посмотреть сообщение
я флуд одобряю, но если в меру.
В этом (в мере) все дело

Да простят мое занудство, но как насчет главного?
Цитата Сообщение от Igor3D Посмотреть сообщение
с универсальностью совсем мрачно. Не видно даже попыток, потуг. Хотя способы известны, даже без template.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
17.11.2025, 21:02
Цитата Сообщение от XLAT Посмотреть сообщение
но в теме С++ для начинающих, где доминируют сишкошкодеры, это не обязательно
я тоже это заметил. Для меня до сих пор большая загадка, почему многие новички в этой теме в качестве ide используют Dev-C++. Причем, есть Dev-C++ 6.3, 2021 года с красной иконкой, который использует TDM-GCC 9.2.0 с поддержкой C++17 и лишь частичной C++20. Но эти новички-извращенцы используются именно классический Dev-C++ с синей иконкой с компилятором TDM-GCC 4.9.2, который поддерживает С++11 и лишь наполовину С++14. Разумеется, новички не меняют компилятор, а пользуются встроенным.
У меня есть гипотеза, что это в их покрытых плесенью книгах написано, что нужно установить это старье.
0
 Аватар для Наталья8
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,300
17.11.2025, 22:21
Цитата Сообщение от Royal_X Посмотреть сообщение
Если же писать как Наталья8 и не использовать такие современные вещи как format, то точно можно превратиться в сишника)
На гитхабах лежат горы кода.... По девять лет... И они написаны отнюдь не на с++ 20.
Будете переделывать?
Ваши диалоги не имеют ни какой связи с жизненной ситуацией.
Примерчик?
Пожалуйста...
Мне надо шифровать текст. Прикол у меня такой.
Искуственный интелект посылает искать cryptopp8...
Ну нету его ни хрена. Какие то ошмётки кодов, с того же гитхаба... И инструкция, как его собирать.
Какие то ошибки, и нету толку.
Ну ладушки, тогда openssl-0.9... Девятый год.
И искуственный интелект мне примерчик написал. Немного с приколами, но работает...

Привожу весь код.. Работает, можете поиграться.
https://code.google.com/archiv... /downloads
Вот адрес, где бинарники дают... Халява.
За что купил, за то и продаю.

C++
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#include <iostream>
#include <string>
#include <vector>
#include <openssl/evp.h>
#include <openssl/aes.h>
#include <openssl/rand.h>
 
 
 
 
// Функция для обработки ошибок OpenSSL
void handleErrors(void) {
    // В реальном приложении здесь должна быть обработка ошибок OpenSSL
    // Например, с помощью ERR_print_errors_fp(stderr);
    abort();
}
 
// Функция шифрования
std::vector<unsigned char> encrypt(unsigned char *plaintext, int plaintext_len, unsigned char *key,
    unsigned char *iv, int *ciphertext_len) {
    EVP_CIPHER_CTX *ctx;
    int len;
    std::vector<unsigned char> ciphertext(plaintext_len + AES_BLOCK_SIZE); // Буфер с запасом
 
    // Создание контекста шифра
    if (!(ctx = EVP_CIPHER_CTX_new())) handleErrors();
 
    // Инициализация операции шифрования.
    if (1 != EVP_EncryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key, iv)) handleErrors();
 
    // Предоставление данных для шифрования и получение зашифрованного вывода
    if (1 != EVP_EncryptUpdate(ctx, ciphertext.data(), &len, plaintext, plaintext_len)) handleErrors();
    *ciphertext_len = len;
 
    // Окончание операции шифрования
    if (1 != EVP_EncryptFinal_ex(ctx, ciphertext.data() + len, &len)) handleErrors();
    *ciphertext_len += len;
 
    // Очистка контекста
    EVP_CIPHER_CTX_free(ctx);
 
    // Изменение размера вектора до фактического размера шифротекста
    ciphertext.resize(*ciphertext_len);
    return ciphertext;
}
 
 
//==========================================
// Функция дешифрования
std::vector<unsigned char> decrypt(unsigned char *ciphertext, int ciphertext_len, unsigned char *key,
    unsigned char *iv, int *plaintext_len) {
    EVP_CIPHER_CTX *ctx;
    int len;
    std::vector<unsigned char> plaintext(ciphertext_len + AES_BLOCK_SIZE); // Буфер с запасом
 
    // Создание контекста шифра
    if (!(ctx = EVP_CIPHER_CTX_new())) handleErrors();
 
    // Инициализация операции дешифрования.
    if (1 != EVP_DecryptInit_ex(ctx, EVP_aes_256_cbc(), NULL, key, iv)) handleErrors();
 
    // Предоставление данных для дешифрования и получение дешифрованного вывода
    if (1 != EVP_DecryptUpdate(ctx, plaintext.data(), &len, ciphertext, ciphertext_len)) handleErrors();
    *plaintext_len = len;
 
    // Окончание операции дешифрования
    if (1 != EVP_DecryptFinal_ex(ctx, plaintext.data() + len, &len)) handleErrors();
    *plaintext_len += len;
 
    // Очистка контекста
    EVP_CIPHER_CTX_free(ctx);
 
    // Изменение размера вектора до фактического размера открытого текста
    plaintext.resize(*plaintext_len);
    return plaintext;
}
 
/*
Важные замечания
Интерфейс EVP : Используйте функции EVP_* (например, EVP_EncryptInit_ex, EVP_EncryptUpdate,
    EVP_EncryptFinal_ex, EVP_CIPHER_CTX_new, EVP_CIPHER_CTX_free).
Ключи и IV : В примере используются жестко закодированные ключ и IV.
В реальных приложениях их нужно генерировать криптографически стойким способом
(например, с помощью RAND_bytes) и надежно хранить.
Обработка ошибок : В примере функция handleErrors() просто вызывает abort().
В рабочем коде необходимо реализовать надлежащую обработку ошибок OpenSSL, чтобы понимать причину сбоев.
Бинарные данные : Зашифрованные данные являются бинарными и могут содержать нулевые байты.
Если вы хотите сохранить их в текстовом файле или передать по сети, используйте кодировку,
например Base64 или Hex, для преобразования бинарных данных в строку.
Режим аутентификации : Для повышения безопасности рассмотрите использование режимов шифрования с аутентификацией,
таких как GCM, которые также обеспечивают целостность и аутентификацию данных.
*/
//==========================================
//==========================================
int main() {
 
    setlocale(LC_ALL, "RUSSIAN");
    // Исходная строка
    unsigned char *un_ptr = (unsigned char *)"нннннннннннннннннннннннннннннннннннннннннннннннннннннннннн";
    //unsigned char *un_ptr = (unsigned char *)&original_text[0];
    // Ключ и вектор инициализации (IV) должны быть надежно сгенерированы и храниться в секрете
    // Для AES-256 ключ должен быть 32 байта, IV - 16 байт
    unsigned char key[] = "012B4567N901234567Z901234S678901";
    unsigned char iv[] = "12345V78901J3456";
 
    // --- Шифрование ---
    int ciphertext_len;
    std::vector<unsigned char> ciphertext = encrypt(
        un_ptr,
        strlen((char*)un_ptr),
        key,
        iv,
        &ciphertext_len
    );
 
    
    
    //std::cout << "Оригинальный текст:\n" << original_text << std::endl;
    std::cout << "Длина шифротекста: " << ciphertext_len << " байт" << std::endl;
    // Примечание: шифротекст - это последовательность байтов, которая может содержать 
    // нулевые символы и не должна рассматриваться как обычная строка. 
    // Для вывода или передачи может потребоваться кодирование, например Base64.
 
    // Вывод зашифрованных данных
    std::cout << "Ciphertext:\n";
    for (int i = 0; i < ciphertext_len; ++i) {
        printf("%02x,", ciphertext[i]);
    }
    printf("\n");
    
    // --- Дешифрование ---
    int decrypted_len;
    std::vector<unsigned char> decrypted_text_bytes = decrypt(
        ciphertext.data(),
        ciphertext_len,
        key,
        iv,
        &decrypted_len
    );
 
    // Преобразование дешифрованных байтов обратно в строку (убедившись, что нулевой символ не обрезает ее)
    //std::string decrypted_text(reinterpret_cast<char*>(decrypted_text_bytes.data()), decrypted_len);
    //std::cout << "Дешифрованный текст: " << decrypted_text << std::endl;
    std::cout << "decrypted text:\n";
    for (int i = 0; i < decrypted_len; ++i) {
        printf("%c", decrypted_text_bytes[i]);
    }
printf("\n");
    
getchar();
    return 0;
}
Современно??
Немного переделал по своему...
Уж больно мне, это длинные умные слова, reinterpret_cast<char*>(decrypted_text_b ytes.data())...
Длинных слов не понимаю. Мозгоф мало.
0
 Аватар для Наталья8
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,300
17.11.2025, 22:30

Метод понятен...
Старьё, фигня. А ты расшифруй...
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
17.11.2025, 22:35
Цитата Сообщение от Наталья8 Посмотреть сообщение
Мне надо шифровать текст. Прикол у меня такой.
когда я использовал шифрование AES 256, то находил в инете лайтовую либу, состоящую всего из двух файлов - cpp / h, и там было всего 600 строк. Имхо, нет смысла юзать тяжелый openssl. Бросил два файла в проект и всё.

Наталья8, если тебе интересно, могу тебе дать. Либа рабочая, я тестировал.

там текст и ключ должны быть std::vector<unsigned char> , но это не проблема, можно написать функцию stringToBytes.
Можно что-то вроде этого.
C++
1
2
3
std::vector<unsigned char> stringToBytes(const std::string &str) {
    return std::vector<unsigned char>(str.begin(), str.end());
}
0
 Аватар для Наталья8
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,300
17.11.2025, 22:43
Цитата Сообщение от Igor3D Посмотреть сообщение
Совместно мелкий прожэкт,
Чё тебе написать то?

Добавлено через 2 минуты
Цитата Сообщение от Royal_X Посмотреть сообщение
Наталья8, если тебе интересно
Да ладно, спасибо, я уже нашёл. Не тяжёлый он...
0
 Аватар для Наталья8
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,300
17.11.2025, 22:43
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
17.11.2025, 22:44
Наталья8, а либа, про которую говорю, всего 17,5 КБ
0
 Аватар для Наталья8
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,300
17.11.2025, 22:52
Это лежит на диске <C:> Там оно и остаёться.
А в проект надо две длл.
Я их не вставлял... Где то находит. Их везде полно валяеться.
0
 Аватар для Наталья8
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,300
17.11.2025, 22:54
Название: NewPicture14 (3).png
Просмотров: 97

Размер: 2.2 Кб
Либилей - сисилей...
0
 Аватар для Наталья8
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,300
17.11.2025, 23:34
Цитата Сообщение от Royal_X Посмотреть сообщение
std::vector<unsigned char>
Правильно... Он может содержать любые байты, и нули тоже.
Где взял искуственный интелект приёмы програмирования?
Не сам же придумал...
Вот на гитхабах он их и нарыл

Добавлено через 25 минут
Цитата Сообщение от Royal_X Посмотреть сообщение
std::vector<unsigned char> stringToBytes(const std::string &str) {
    return std::vector<unsigned char>(str.begin(), str.end());
}
Не то ... string не несёт любые байты.
Это надо грузить как то иначе. Из файла например
C++
1
2
fseek(file_ptr, pos_n, SEEK_SET);
    fread(&cur_of_pict, sizeof(cur_of_pict), 1, file_ptr);
Как то так. По бинарному.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6318 / 3043 / 1054
Регистрация: 01.06.2021
Сообщений: 11,616
17.11.2025, 23:45
Наталья8, я просто осмысленный текст шифровал, а не байты. Текст и ключ были string.
0
 Аватар для Наталья8
625 / 383 / 67
Регистрация: 09.03.2016
Сообщений: 4,300
18.11.2025, 00:02
В осмысленном тексте есть такие штуки как "\r\n".
Кстати есть немножко разница, между string и char...
В массив unsigned char, можно любой контент напихать.
Только размер отдельно иметь, а не strlen() брать.
И по моему не обязательно он должен быть unsigned...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.11.2025, 00:02

Нормальная, современная книга по C++ с ООП уклоном
Так вышло что изучаю параллельно два языка Java и C++ ну вот жизть так сложилась нужно писать и там...

А.Александреску - Современное проектирование на C++
Собственно вопрос не совсем по программированию :) Хочу купить бумажный вариант, но смущает, что...

Современный интерфейс в C++ Builder / C++ Builder
Что используют программисты для создания современного интерфейса в C++ Builder 6? Ведь сейчас,...

Каков современный подход для работы со строками
Здравствуйте, хотел узнать современный подход для работы со строками. В С++ так же используется...

Концепция ООП и их использование в современных языках программирования
Дали курсовую на эту тему. Подскажите, какую литературу, которую можно бы было использовать пр ...


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

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru