Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
 Аватар для Claemor
1 / 0 / 0
Регистрация: 12.04.2021
Сообщений: 15

Чтение строк на кириллице в UTF-8 из файла

01.05.2025, 20:03. Показов 8051. Ответов 79
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <windows.h>
 
 
#define CHUNK_SIZE 1024 // Строка будет не больше 1024 символов
 
BOOL check_a_substr(wchar_t* string, wchar_t* substring) {
    return wcsstr(string, substring) != NULL;
}
 
int main() {
    // Переменные
    wchar_t file_name[250] = L"";
    char buffer[CHUNK_SIZE];
    wchar_t searched_name[60];
    wchar_t searched_surname[60];
 
    // Кодировка вывода/ввода в консоль (Windows-1251)
    system("chcp 1251");
    setlocale(LC_ALL, "Russian_Russia.1251");
    SetConsoleOutputCP(1251);
 
    // Получения пути файла
    wprintf_s(L"Введите путь до файла: ");
    wscanf_s(L"%249s", file_name, (unsigned)_countof(file_name));
 
    FILE* file = _wfopen(file_name, L"r");
    if (!file) {
        wprintf_s(L"Ошибка при открытии файла базы!\n");
        wprintf(L"Код ошибки: %d\n", errno);
        return 1;
    }
 
    // Получение ФИО
    wprintf_s(L"Введите имя человека (БЕЗ ОШИБОК! В НИЖНЕМ РЕГИСТРЕ!): ");
    wscanf_s(L"%59s", searched_name, (unsigned)_countof(searched_name));
    wprintf_s(L"Введите фамилию человека (БЕЗ ОШИБОК! В НИЖНЕМ РЕГИСТРЕ!): ");
    wscanf_s(L"%59s", searched_surname, (unsigned)_countof(searched_surname));
 
    // Поиск в файле
    while (fgets(buffer, CHUNK_SIZE, file)) {
        size_t dummy;
        wchar_t wbuffer[CHUNK_SIZE]; // Буфер для хранения строки в формате wchar_t
        wchar_t wbuffer1251[CHUNK_SIZE]; // Буфер для хранения строки в формате Windows-1251
 
        mbstowcs_s(&dummy, wbuffer, CHUNK_SIZE, buffer, _TRUNCATE); // Преобразование в wchar_t
        WideCharToMultiByte(1251, 0, wbuffer, -1, wbuffer1251, CHUNK_SIZE, NULL, NULL); // Преобразование в Windows-1251
        for (int i = 0; wbuffer1251[i] != L'\0'; i++) {
            wbuffer1251[i] = towlower(wbuffer1251[i]);
        }
        if (check_a_substr(wbuffer1251, searched_name) && check_a_substr(wbuffer1251, searched_surname)) {
            wprintf(L"%ls", wbuffer1251);
        }
    }
 
    fclose(file);
    return 0;
}
Я пытаюсь обработать текстовый файл, содержащий строки на кириллице, и отфильтровать эти строки, содержащие определенные подстроки. Файл сохранен в кодировке UTF-8. Я пробовал ставить и utf-8 в консоли но тогда в билиберду превращается кириллица с ввода, поэтому решил перевести строку с файла в кодировку 1251, но почему-то не выходит. Вобщем какая-то проблема с кодировкой, помогите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.05.2025, 20:03
Ответы с готовыми решениями:

Программа для конвертации тектового файла из кодировки UTF-8 в UTF-16
Привет. Как можно реализовать эту программу на чистом си?

Написать функцию для распознавания кириллицы (больших и маленьких букв) в кодировке UTF-8
Помогите я никак не могу написать функцию для распознавания кириллицы (больших и маленьких букв) в...

Чтение кириллицы из консоли
Всем добрый вечер. Собственно проблема: есть функция считывающая текст либо из файла, либо из...

79
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
09.05.2025, 12:50
Студворк — интернет-сервис помощи студентам
Недавно пробовал. Не всем понятно правда.

Я на консоли вводить, ни чего однозначно не стану.

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
// ==========================================
/*возвращаемое значение является параметром nResult,
указанным в вызове функции EndDialog,
которая использовалась для завершения диалогового окна.
*/
LRESULT DoDebugDialog(HWND hwndApp, bool enter)// Входная функция открыть пользовательскую мессагу
{
    if (enter)
return DialogBoxIndirectParamW(0, (LPCDLGTEMPLATEW)&g_DebugDlgTemplate,
                                          hwndApp,//<--- Из за этого HWND, диалог привязан к окну
                       (DLGPROC)Debug_DlgProc, 0);
    else {
    RECT pos_cons{};
        GetWindowRect(hwndApp, &pos_cons);
        //    left   Задает координату x верхнего левого угла прямоугольника.
        //   top  Задает координату Y верхнего левого угла прямоугольника.
    wchar_t struct_t[] = L"\0\0\0\0\0\0\0" L"~A"// Строка wchar_t не константная. 
            L"\0\0Your actions"; // я могу её изменять
        DWORD *style = (DWORD*)struct_t;// Привинчиваю два указателя, вваливаю стили и позицию по координатам.
        *style = WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
            | DS_MODALFRAME | DS_3DLOOK | DS_SETFONT;
         short *pos = (short*)struct_t + 5;
         *pos = pos_cons.left / 2 + 20;
         *(++pos) = pos_cons.top / 2 + 25;
 
return DialogBoxIndirectParamW(0,
            reinterpret_cast<LPDLGTEMPLATE>(struct_t), 0, (DLGPROC)Dlg, 0);
         }
}
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6274 / 2998 / 1051
Регистрация: 01.06.2021
Сообщений: 11,212
09.05.2025, 12:54
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
русские
кириллические
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Можно, например, выводить
можно, но зачем? Мне вот попадались такие программы, которые должны были выводить такие красивые символы, но в результате я видел только квадратики или кракозябры. Уж лучше выводить что-то вроде 9.109*10^(-31), чем кракозябры. Так ты гарантированно знаешь, что будет всё норм.
А если хочется секси-вывода формул, то что мешает создать оконное приложение с выводом с помощью, например, MathJax и со всеми аксельбантами, блекджеком и ...
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
09.05.2025, 12:58
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
09.05.2025, 13:01
0
 Аватар для COKPOWEHEU
4093 / 2691 / 432
Регистрация: 09.09.2017
Сообщений: 11,983
09.05.2025, 13:29
Цитата Сообщение от Наталья8 Посмотреть сообщение
Можно вот такое устроить легко...
А в скрипт потом встроить также легко?
Цитата Сообщение от Royal_X Посмотреть сообщение
можно, но зачем?
Именно красивые степени? По правде говоря, низачем. Разве что в чисто декоративных целях. Для реального же применения, как обычно, любое отклонение от стандарта - зло.
9.109e-31. Такой формат уже устоялся и легко читаем другими программами.
Цитата Сообщение от Royal_X Посмотреть сообщение
но в результате я видел только квадратики или кракозябры
Собственно, об этом вся тема: даже сейчас, в 2025 году не все умеют в юникод.
Цитата Сообщение от Royal_X Посмотреть сообщение
то что мешает создать оконное приложение
Оконное приложение писать гораздо труднее, чем обычное консольное. Плюс проблемы со скриптованием.Плюс необходимость таскать с собой тонну библиотек.
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
09.05.2025, 13:33
Знакогенератор ещё должен наверное быть в системе.
А если его нету, то надо устанавливать?
В бильдере, там наверное всего полно.



Русский то у меня конечно есть...
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
09.05.2025, 13:37
C++
1
2
3
4
5
6
7
8
9
10
11
12
SetTextColor(hDeviceContext, RGB(201, 30, 55));// Здесь я окрасил форму диалога и вывел надпись на форму
        HBRUSH  hBrush = CreateSolidBrush(RGB(166, 202, 240));
        FillRect(hDeviceContext, &rectPlace, hBrush);
        SetBkMode(hDeviceContext, TRANSPARENT);
        HFONT hTFont = CreateFont(22,// Размер текста меняю здесь.
            0, 0, 0, 0, 0, 0, 0, DEFAULT_CHARSET, 0, 0, 0, 0, L"calibri"
        );
        /*comic sans ms
            CONSOLAS
            courier new
            ARIAL BLACK
       */
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
09.05.2025, 13:39
Цитата Сообщение от Наталья8 Посмотреть сообщение
Знакогенератор ещё должен наверное быть в системе.
Ты нам пишешь из 1985-го года, штоли?



Знакогенератор, мля......
1
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
09.05.2025, 13:42
SFML -- таскает с собою шрифты...
Можно грузить любой...



C++
1
2
3
4
5
6
7
8
9
10
11
12
int main()
{
    setlocale(LC_ALL, "Rus");
 
    char cmdline[BUFSIZ] = {}; //--------------  Родной фолдер(в него писать файл)
    GetModuleFileNameA(GetModuleHandle(NULL), cmdline, BUFSIZ);
//                                                           CyrillicOldBold.ttf
    *strrchr(cmdline, '\\') = '\0'; strcat(cmdline, "\\sprite\\Amazonica.ttf");
    
sf::RenderWindow window(sf::VideoMode(800, 600), L"Меню");
    sf::Font font;
    font.loadFromFile(cmdline); // Загрузка шрифта
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
09.05.2025, 13:45
Цитата Сообщение от Verevkin Посмотреть сообщение
Знакогенератор, мля......
Ну пусть они будут шрифты... На спектруме был знакогенератор..
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
09.05.2025, 13:49
Цитата Сообщение от Наталья8 Посмотреть сообщение
На спектруме был знакогенератор..
Ты давай ещо арифмометр приплети. Или счёты.

1
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6274 / 2998 / 1051
Регистрация: 01.06.2021
Сообщений: 11,212
09.05.2025, 14:10
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Плюс необходимость таскать с собой тонну библиотек.
wxWidgets со статической сборкой норм, создает один исполняемый файл без зависимостей (и не слишком набухший). Данный фреймворк отлично работает с юникодом и предлагает целый набор конвертерных функций. И главное, с хорошей лицензией.
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
10.05.2025, 02:31


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
TCHAR szText_n[] = L"Դաշտերուն վրայ իր տրտմութեամբ յամառող Անձրեւը չէ՛ ասիկայ ";
 
 
 
bool LoadFontFromFile(const char* fontPath) {
    // Загрузка шрифта в память
    int numFonts = 0;
    int hFontResource = AddFontResourceExA(fontPath, FR_PRIVATE, (PVOID)&numFonts);
    if (hFontResource == 0) {
        std::cerr << " Ошибка: не удалось загрузить шрифт из файла!" << std::endl;
        return false;
    }
    std::cout << " Шрифт успешно загружен." << std::endl;
    return true;
}
 
void RemoveFont(const char* fontPath) {
    // Удаление шрифта из памяти
    RemoveFontResourceExA(fontPath, FR_PRIVATE, nullptr);
    std::cout << " Шрифт удален из памяти." << std::endl;
}
 
 
INT_PTR
Dlg(HWND hwnd, UINT message, WPARAM w, LPARAM l)
{
    const char* fontPath = "C:\\path\\Arial_Armenian.TTF";
    RECT rectPlace; HBRUSH  hBrush;
    HDC  hDeviceContext;
    switch (message)
    {
case WM_PAINT:
        PAINTSTRUCT paintStruct;// Окрашу форму и выведу цветную надпись на RECT
        hDeviceContext = BeginPaint(hwnd, &paintStruct);
        GetClientRect(hwnd, &rectPlace);
        SetTextColor(hDeviceContext, RGB(201, 30, 55));// Здесь я окрасил форму диалога и вывел надпись на форму
        hBrush = CreateSolidBrush(RGB(166, 202, 240));
        FillRect(hDeviceContext, &rectPlace, hBrush);
        SetBkMode(hDeviceContext, TRANSPARENT);
        
    if (LoadFontFromFile(fontPath)) {
            // Создание шрифта для использования в HDC
            HFONT hFont = CreateFont(
                28, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE,
                DEFAULT_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS,
                CLEARTYPE_QUALITY, DEFAULT_PITCH | FF_DONTCARE,
                L"Arial Armenian" // Замените на имя шрифта, указанное в файле TTF
            );
            // Проверка создания шрифта
            if (!hFont) std::cerr << "Ошибка при создании шрифта!" << std::endl;
 
        rectPlace.top += 23; rectPlace.left += 10;// Выровняю надпись куда надо
        SelectObject(hDeviceContext, hFont);
 
        //======================    
        DrawText(hDeviceContext, (LPCWSTR)szText_n, wcslen(szText_n),
            &rectPlace, DT_MODIFYSTRING | DT_PATH_ELLIPSIS);//DT_SINGLELINE | DT_LEFT | DT_VCENTER
        EndPaint(hwnd, &paintStruct);
 
        ReleaseDC(hwnd, hDeviceContext);
        DeleteDC(hDeviceContext);
    }
        break;
case WM_CLOSE:
    // Удаление шрифта после использования
    RemoveFont(fontPath);
    EndDialog(hwnd, IDCANCEL);
    break;
    }
    return 0;
}
 
 
 
 
int main()
{
    setlocale(LC_ALL, "RUSSIAN");
     // Укажите путь к файлу шрифта
                        // Загрузка шрифта
        RECT pos_cons{};
        GetWindowRect(GetConsoleWindow(), &pos_cons);
        //    left   Задает координату x верхнего левого угла прямоугольника.
        //   top  Задает координату Y верхнего левого угла прямоугольника.
        wchar_t struct_t[] = L"\0\0\0\0\0\0\0" L"\5129"// Строка wchar_t не константная. 
            L"\0\0Your actions"; // я могу её изменять
        DWORD *style = (DWORD*)struct_t;// Привинчиваю два указателя, вваливаю стили и позицию по координатам.
        *style = WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
            | DS_MODALFRAME | DS_3DLOOK | DS_SETFONT;
        short *pos = (short*)struct_t + 5;
        *pos = pos_cons.left / 2 + 20;
        *(++pos) = pos_cons.top / 2 + 25;
 
        if (DialogBoxIndirectParamW(0,
            reinterpret_cast<LPDLGTEMPLATE>(struct_t), 0, (DLGPROC)Dlg, 0) == IDCANCEL);
        // ------------------------------------------
getchar();
    return 0;
}
Немножко по армянски...
1
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
10.05.2025, 18:23


https://fonts-online.ru/fonts/consolas
Много поддерживает, но не всё.
0
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6274 / 2998 / 1051
Регистрация: 01.06.2021
Сообщений: 11,212
16.05.2025, 12:55
Наталья8, есть шрифты, которые в разы больше глифов поддерживают, нежели Consolas. Тем более, этот шрифт на винде был заменен на Cascadia, который лишен недостатков Consolas (например, визуальное сходство l и 1).
Да и практика показывает, что моноширинные шрифты никогда не были лидерами по количеству поддерживаемых глифов. В этом плане всегда лидируют шрифты с засечками. Хорошую поддержку юникода имеют Code2000, Noto. Но иногда это перебор. Те же Arial, Times New Roman, Segoe UI имеют норм. поддержку без чрезмерной экзотики.
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
16.05.2025, 12:58
Цитата Сообщение от Наталья8 Посмотреть сообщение
Много поддерживает
Consolas по дефолту на консоли работает. Вот я к чему.
Консоль поддерживает замену шрифтов?
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
16.05.2025, 13:04
Что вчера нашёл вот это нашёл.... А шрифты фигня.
Кстати, пытался на winApi, вставить шрифт в ресурсы экзешника,
не прокатило.

Время проигрывания видео. Быстренько изменить.
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
16.05.2025, 13:08
Цитата Сообщение от Наталья8 Посмотреть сообщение
Кстати, пытался на winApi, вставить шрифт в ресурсы экзешника,
не прокатило.
А у меня прокатило. ЧЯДНТ?
0
Нарушитель
622 / 380 / 67
Регистрация: 09.03.2016
Сообщений: 4,162
16.05.2025, 13:24
Не хочет читать из ресурсов..
Хочет файл.
C++
1
2
3
4
5
6
int numFonts = 0;
    int hFontResource = AddFontResourceExA(fontPath, FR_PRIVATE, (PVOID)&numFonts);
    if (hFontResource == 0) {
        std::cerr << " Ошибка: не удалось загрузить шрифт из файла!" << std::endl;
        return false;
    }
Выводит какое то исключение.
0
Злостный нарушитель
 Аватар для Verevkin
10878 / 5817 / 1288
Регистрация: 12.03.2015
Сообщений: 26,855
16.05.2025, 13:32
Цитата Сообщение от Наталья8 Посмотреть сообщение
Не хочет читать из ресурсов..
Хочет файл.
Ты б попробовал документацию почитать, штоли...



У меня работает именно из памяти (AddFontMemResourceEx):
Delphi
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
function TUserFontList.LoadResourceFont(const AResourceName: string): Boolean;
begin
   // установка шрифта из ресурса
  var stream:= TResourceStream.Create(hInstance, AResourceName, UF_RESOURCE_TYPENAME);
  try
    inc(FResourceSize, stream.Size); // размер ресурсов += размер шрифта
 
    // извлечение имени шрифта из образа ресурса (только для TTF)
    var fontname:= GetTTFFontNameFromImage(stream); // чтение имени шрифта из образа
 
    // пропуск установленных
    if FSkipInstalled and IsFontInstalled(fontname)
      then begin
             inc(FSkippedCount); // фиксация пропуска
             exit(true);  // шрифт пропущен как установленный в систему
           end;
 
    // приватная установка шрифта
    var FontsCount: int32;
    var hf:= AddFontMemResourceEx(stream.Memory, stream.Size, nil, @FontsCount);
    result:= hf <> 0;
 
    if not result
      then begin // ошибка
             inc(FErrorCount); // фиксация ошибкт
             fontname:= GetLastErrorMessage(GetLastError()); // текст ошибки добавляю в список вместо шрифта
           end;
 
    // добавление имени и дескриптора или текста ошибки и нуля в список
    AddObject(fontname, pointer(hf));
  finally
    stream.Free();
  end;
end;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2025, 13:32
Помогаю со студенческими работами здесь

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

UTF-8
Здравствуйте! В общем разбираюсь я тут с UTF-8. Имеет место быть следующая функция: int...

C, Linux, UTF-8 - не видно русских символов
Здравствуйте. Я только начинаю разбираться с языком и кодировками и возник следующий вопрос. ...

Сложности понимания работы utf-8 и ascii
Привет! Давненько заметил вот такую штуку: $ echo &quot;abcde&quot; &gt; test_utf-8_en.txt $ echo &quot;абвг&quot; &gt;...

Написать функцию выполняющую перевод строки с символами русского алфавита в кодировке UTF-8 в заданный набор символов
Помогите пожалуйста написать функцию выполняющую перевод строки с символами русского алфавита в...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
Модель здравосохранения 17. Планы на выгорание
anaschu 23.05.2026
Вот конкретная схема реализации: В классе Работник добавить: накопленнаяУсталость — растёт каждый час работы, снижается в перерывы и болезни коэффициентПрезентеизма — снижает продуктивность. . .
Изменение цветов в палитре gif файла aka фавикона
russiannick 23.05.2026
Изменение цветов в палитре gif файла, юзаемого как фавиконка в составе html-файла, помещенная в base64, средствами нативного Java Script, навеянное сном в майский день. Для работы необходим браузер,. . .
Модель здравосохранения 16. Слишком хорошие и здоровые сотрудники уходят, недовольные зарплатой
anaschu 23.05.2026
Отладка увольнений и настройка производительности Сегодня во второй половине дня разобрались с механикой увольнений и настроили коэффициент сложности заданий. Вот что было сделано. . . .
Как я стал коммунистом))) Модель сохранения здоровья сотрудников, запись блога номер 15
anaschu 23.05.2026
Внезапно хорошее здоровье сотрудников не нужно капиталистам?))
Модель здравоСохранения 15. Как мы чинили AnyLogic модель рабочего коллектива: сочленение диаграммы состояний болезней и поломок в ресурспул
anaschu 23.05.2026
Как мы чинили AnyLogic модель рабочего коллектива Сегодня разобрались с пятью багами, из-за которых модель либо падала с ошибкой, либо давала совершенно бессмысленные результаты. Каждый баг был. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru