Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 19

Почему-то не читается содержимое файла в OEM 866 на других компах, кроме моего

03.10.2016, 19:28. Показов 3892. Ответов 36

Студворк — интернет-сервис помощи студентам
Всем привет!

Я написал программку по считыванию файла в формате OEM 866 и выводе определенных строк в консоль. На моих компьютерах все работает отлично, однако на других компьютерах содержимое файла попросту не читается, но при этом сам файл открывается без проблем (добавил функцию проверки is_open). Разница между компьютерами в установленном GCC.

Подскажите, пожалуйста, какие библиотеки нужно добавить, дабы все читалось без проблем без установки GCC? На данный момент в проекте есть libgcc_s_dw2-1.dll и libstdc++-6.dll.

Заметка, программа читает нормально файлы в кодировке Windows 1251 на любых компах.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.10.2016, 19:28
Ответы с готовыми решениями:

Программа не работает на всех компах кроме моего
Добрый день. Создал проект, программа работает нормально. Решил вытащить exe файл, чтобы скинуть проверить на других компах, ну и знакомым...

В папке Сеть 11 других компьютеров кроме моего
Здраствуйте , на днях зашел в папку ''Сеть'' и обноружил там 11 других компьютеров кроме моего. Вопрос 1:Так должно быть или нет ? ...

Вывод текста в кодировке Win-1251 из bat-файла, текст которого в кодировке OEM-866
примем за аксиому утверждение: "bat-скрипт следует создавать в кодировке DOS (OEM-866)" ...пусть в скрипте есть код, который...

36
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
03.10.2016, 20:22
Ну так может там консоль по другому настроена. Подробнее давай.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 00:10
Цитата Сообщение от FrankieRafie Посмотреть сообщение
содержимое файла попросту не читается
Откуда видно? На консоль ничего не выводится?
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 19
04.10.2016, 15:17  [ТС]
Один и тот же файл. Одна и та же версия проги. У меня выводятся строчки, а на другом компе пишет, что не найдено соответствий (есть функция проверки, найдено ли соответствие или нет).

Вся функция поиска соответствий (Сорян за недокод):

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
void NetworkInfo(string path)
{
    setlocale(0, "");
    string str;
    ifstream fin(path.c_str());
    if (!fin.is_open())
    { cout << "Can't open NetworkInfo file"<<endl;
    }
    else{
        bool have_DNS=false, is_wifi=false, domain_on=false, standart_on=false, is_router=false;
        size_t found;
        char domain_on_ch[28];
        CharToOem("Конфигурация профиля Domain", domain_on_ch);
        char is_wifi_ch[36];
        CharToOem("Адаптер беспроводной локальной сети", is_wifi_ch);
        char standart_on_ch[24];
        CharToOem("Конфигурация профиля Об", standart_on_ch);
        char is_router_ch[11];
        CharToOem("IPv4-адрес", is_router_ch);
        char public_ch[12];
        CharToOem("DNS-серверы", public_ch);
        vector<string> DNSstr;
        while(!fin.eof()){
            getline(fin, str);
            found = str.find(is_wifi_ch);
                if (found!=std::string::npos)
                is_wifi=true;
            found = str.find(is_router_ch);
            if (found!=std::string::npos){
                found = str.find("192");
                    if (found!=std::string::npos)
                    is_router=true;
            }
            else{
                found = str.find("IPv4 Address");
                if (found!=std::string::npos){
                found = str.find("192");
                    if (found!=std::string::npos)
                    is_router=true;
            }
            }
            found = str.find(public_ch);
            if (found!=std::string::npos){
                    while(true){
                        DNSstr.push_back(str);
                        getline(fin, str);
                        found = str.find("NetBIOS");
                        if (found!=std::string::npos){break;}
                        found = str.find("NetBios");
                        if (found!=std::string::npos){break;}
                    }
                    have_DNS=true;
            }
            else{
                found = str.find("DNS Servers");
                if (found!=std::string::npos){
                    while(true){
                        DNSstr.push_back(str);
                        getline(fin, str);
                        found = str.find("NetBIOS");
                        if (found!=std::string::npos){break;}
                        found = str.find("NetBios");
                        if (found!=std::string::npos){break;}
                    }
                    have_DNS=true;
                }
            }
            found = str.find(domain_on_ch);
            if (found!=std::string::npos){
                    getline(fin, str);
                    getline(fin, str);
                    found = str.find("= Enable");
                        if (found!=std::string::npos)
                            domain_on=true;
            }
        else{
            found = str.find("Domain profile configuration");
            if (found!=std::string::npos&&!domain_on){
                    getline(fin, str);
                    getline(fin, str);
                    found = str.find("= Enable");
                        if (found!=std::string::npos)
                            domain_on=true;
        }
        }
            found = str.find(standart_on_ch);
            if (found!=std::string::npos){
                    cout<<endl;
                    getline(fin, str);
                    getline(fin, str);
                    found = str.find("= Enable");
                        if (found!=std::string::npos)
                            standart_on=true;
        }
            else{
            found = str.find("Standard profile configuration");
            if (found!=std::string::npos){
                    getline(fin, str);
                    getline(fin, str);
                    found = str.find("= Enable");
                        if (found!=std::string::npos)
                            standart_on=true;
        }
    }
    }
    fin.close();
    if(is_router){
        cout<<"Player use ROUTER"<<endl;
    }
    if(is_wifi){
        cout<<"Player use or used WI-FI on this computer"<<endl;
    }
    if(domain_on){
        cout<<"Domain's firewall is ON"<<endl;
    }
    if(standart_on){
        cout<<"Standart firewall is ON"<<endl;
    }
    if(have_DNS){
        cout<<"DNS addresses are: "<<endl;
        for(int i=0;i<DNSstr.size();i++){
            cout<<DNSstr[i]<<endl;
        }
    }
    else{
        cout<<"Can't find DNS strings in Networkinfo"<<endl;
    }
    }
}
Добавлено через 1 минуту
А что там в консоли может быть не то настроено и как это влияет на считывание из файла?

Добавлено через 2 минуты
У меня, например выходят строчки:
Player use ROUTER
Domain's firewall is ON
DNS addresses are:
8.8.8.8
8.8.4.4

А на другом компе:
Can't find DNS strings in Networkinfo
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 15:33
Файл можешь выложить?
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 19
04.10.2016, 15:52  [ТС]
Да, вот, держи http://dropmefiles.com/2HaQ0
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 16:31
Цитата Сообщение от FrankieRafie Посмотреть сообщение
DNS addresses are:
8.8.8.8
8.8.4.4
У тебя какой-то другой файл?
У меня так:
DNS addresses are:
DNS-серверы. . . . . . . . . . . : 8.8.8.8
8.8.4.4
И это если setlocale(0, "") из функции убрать (иначе, кириллица - кракозябрами).

Добавлено через 15 минут
FrankieRafie, я правильно понимаю: собираешь .exe на своём компе, потом этот .exe пробуешь на других компах?
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 19
04.10.2016, 16:38  [ТС]
Я писал примерно. Суть не в формате вывода. И у тебя тоже выводится все, насколько я вижу. Неужели дело именно в MinGW?

У меня 100 таких файлов для тестов. Каждый читался. А вот на другом компе не читается. Там компилятор не установлен. Ну и консолька немного по-другому настроена, но я не уверен, что это влияет на считывание файла.

Суть функции в том, что если в файле Networkinfo не будет строчки DNS (а это возможно в нашем случае только если файл пустой или содержит одну строчку об ошибке теста), то выдаст только строку: Can't find DNS strings in Networkinfo

Но это немного лишняя информация.

Еще раз повторю, что на компах с компилятором и указанным путем к нему соответственно все работает безотказно (как и у тебя), но на других компах на файлах NetworkInfo любого содержания выдает только: Can't find DNS strings in Networkinfo,
что говорит о том, что остальные строчки попросту не читаются. Проверял и на файле, неписанном полностью на латинице. Эффект тот же.

За локаль спасибо, уберу.

Добавлено через 3 минуты
Да, собираю у себя дома и тестирую на работе. У меня поставлен на рабочем компе MinGW. И все работает. У коллеги нет MinGW и не работает только эта функция.

В самой проге есть еще функции, например, она считывает файл в кодировке: Windows 1251 и записывает в буфер обмена. Работает без проблем.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 16:43
Цитата Сообщение от FrankieRafie Посмотреть сообщение
что говорит о том, что остальные строчки попросту не читаются.
Откуда уверенность, что не читаются? Может не находятся.

Добавлено через 3 минуты
Проверить не сложно: сделай вывод строк при чтении.
Миниатюры
Почему-то не читается содержимое файла в OEM 866 на других компах, кроме моего  
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 19
04.10.2016, 16:56  [ТС]
Немного оговорился. Они не находятся, как я подозреваю, в связи с тем, что не читаются. Опять же, строчка, например, с DNS, должна выводиться, но не находится.

И я не могу понять, почему на одном компе все работает, а на другом нет. При том, что ОС и железо одинаковые и разница лишь в наличии компилятора.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 17:11
Цитата Сообщение от FrankieRafie Посмотреть сообщение
Они не находятся, как я подозреваю, в связи с тем, что не читаются.
Проверь: читаются или не читаются.
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 19
04.10.2016, 17:14  [ТС]
ОК, завтра проверю.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 17:30
Цитата Сообщение от FrankieRafie Посмотреть сообщение
ОК, завтра проверю.
Ты и сам знаешь, но напомню: чтение у тебя в функции в нескольких местах, поэтому и вывод на консоль сделай везде, где есть чтение, и, желательно, всё выводимые строки пронумеровать, чтобы можно было сразу увидеть, что действительно все строки читаются.

Добавлено через 4 минуты
ОС какая? Каким компилятором (версия) собираешь?
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 19
04.10.2016, 22:36  [ТС]
Компилятор GCC 4.9.2 Win 10 64.

Проверяю на Win 7 64.

Немного не понял на счет проверки. Я создал отдельную программу с функцией считывания файла и простого вывода его в консоль. В функции делается примерно тоже самое, просто потом идет проверка. Если файл не читается, то он и в консоль не попадет. А если прочитается, то проблема в проверке.

Или же обязательно нужно сделать это в оригинале программы?
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 22:44
Цитата Сообщение от FrankieRafie Посмотреть сообщение
Или же обязательно нужно сделать это в оригинале программы?
Конечно лучше. Иначе, проблема расплывётся. Так как я уже сделал для экспериментов, то можешь использовать (форматировал только под себя):
Кликните здесь для просмотра всего текста
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
153
154
155
156
157
158
159
160
161
162
void NetworkInfo(string path)
{
    //setlocale(0, "");
    string str;
    ifstream fin(path.c_str());
    if (!fin.is_open())
    { 
        cout << "Can't open NetworkInfo file"<<endl;
        return;
    }
    
    
    bool have_DNS=false, is_wifi=false, domain_on=false, standart_on=false, is_router=false;
    size_t found;
    char domain_on_ch[28];
    CharToOem("Конфигурация профиля Domain", domain_on_ch);
    char is_wifi_ch[36];
    CharToOem("Адаптер беспроводной локальной сети", is_wifi_ch);
    char standart_on_ch[24];
    CharToOem("Конфигурация профиля Об", standart_on_ch);
    char is_router_ch[11];
    CharToOem("IPv4-адрес", is_router_ch);
    char public_ch[12];
    CharToOem("DNS-серверы", public_ch);
    vector<string> DNSstr;
    size_t i = 1;
    while(!fin.eof())
    {
        getline(fin, str);
        cout << i++ << ' ' << str << endl;
        found = str.find(is_wifi_ch);
        if (found!=std::string::npos)
            is_wifi=true;
        found = str.find(is_router_ch);
        if (found!=std::string::npos)
        {
            found = str.find("192");
            if (found!=std::string::npos)
                is_router=true;
        }
        else
        {
            found = str.find("IPv4 Address");
            if (found!=std::string::npos)
            {
                found = str.find("192");
                if (found!=std::string::npos)
                    is_router=true;
            }
        }
        found = str.find(public_ch);
        if (found!=std::string::npos)
        {
                while(true)
                {
                    DNSstr.push_back(str);
                    getline(fin, str);
                    cout << i++ << ' ' << str << endl;
                    found = str.find("NetBIOS");
                    if (found!=std::string::npos)
                        break;
                    found = str.find("NetBios");
                    if (found!=std::string::npos)
                        break;
                }
                have_DNS=true;
        }
        else
        {
            found = str.find("DNS Servers");
            if (found!=std::string::npos)
            {
                while(true)
                {
                    DNSstr.push_back(str);
                    getline(fin, str);
                    cout << i++ << ' ' << str << endl;
                    found = str.find("NetBIOS");
                    if (found!=std::string::npos)
                        break;
                    found = str.find("NetBios");
                    if (found!=std::string::npos)
                        break;
                }
                have_DNS=true;
            }
        }
        found = str.find(domain_on_ch);
        if (found!=std::string::npos)
        {
                getline(fin, str);
                cout << i++ << ' ' << str << endl;
                getline(fin, str);
                cout << i++ << ' ' << str << endl;
                found = str.find("= Enable");
                if (found!=std::string::npos)
                    domain_on=true;
        }
        else
        {
            found = str.find("Domain profile configuration");
            if (found!=std::string::npos&&!domain_on)
            {
                getline(fin, str);
                cout << i++ << ' ' << str << endl;
                getline(fin, str);
                cout << i++ << ' ' << str << endl;
                found = str.find("= Enable");
                if (found!=std::string::npos)
                    domain_on=true;
            }
        }
        found = str.find(standart_on_ch);
        if (found!=std::string::npos)
        {
            cout<<endl;
            getline(fin, str);
            cout << i++ << ' ' << str << endl;
            getline(fin, str);
            cout << i++ << ' ' << str << endl;
            found = str.find("= Enable");
            if (found!=std::string::npos)
                standart_on=true;
        }
        else
        {
            found = str.find("Standard profile configuration");
            if (found!=std::string::npos)
            {
                getline(fin, str);
                cout << i++ << ' ' << str << endl;
                getline(fin, str);
                cout << i++ << ' ' << str << endl;
                found = str.find("= Enable");
                if (found!=std::string::npos)
                    standart_on=true;
            }
        }
    } // while
    
    fin.close();
    if(is_router)
        cout<<"Player use ROUTER"<<endl;
    
    if(is_wifi)
        cout<<"Player use or used WI-FI on this computer"<<endl;
    
    if(domain_on)
        cout<<"Domain's firewall is ON"<<endl;
    
    if(standart_on)
        cout<<"Standart firewall is ON"<<endl;
    
    if(have_DNS)
    {
        cout << "DNS addresses are: " << endl;
        for(int i=0;i<DNSstr.size();i++)
            cout << DNSstr[i] << endl;
    }
    else
        cout<<"Can't find DNS strings in Networkinfo"<<endl;
}


Добавлено через 3 минуты
Цитата Сообщение от FrankieRafie Посмотреть сообщение
Компилятор GCC 4.9.2 Win 10 64.
Т.е., mingw? Так ты 64-x битный .exe собираешь или 32-х битный? И вот это:
Цитата Сообщение от FrankieRafie Посмотреть сообщение
На данный момент в проекте есть libgcc_s_dw2-1.dll и libstdc++-6.dll.
Это где у тебя в проекте?
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 19
04.10.2016, 22:54  [ТС]
Спасибо, тогда сделаю с твоей функцией.

Да, MinGW. Насколько я вижу, mingw32.

В корневой папке с проектом. При запуске без них у меня на работе комп ругался. Так то я не знаю, как и можно ли вообще их вшить.

Добавлено через 2 минуты
Кстати, заметил такую особенность, что после последней компиляции программы на рабочих компах, где нет компилятора, перестало требовать libgcc_s_dw2-1.dll и libstdc++-6.dll.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 23:02
Цитата Сообщение от FrankieRafie Посмотреть сообщение
При запуске без них у меня на работе комп ругался.
Я тоже собирал mingw 4.9.2, рядом с .exe никаких .dll нет. Пробовал на трёх 64-х битных ОС. На трёх Code Blocks установлен с mingw, но в path mingw не прописан, на четвёртой и mingw нет, и везде нормально работает, и когда программа работает, я не вижу, в списке используемых ею .dll, этих.

Добавлено через 4 минуты
Какие-нибудь флаги компилятора, или опции, или опции линкера выставлены?
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 19
04.10.2016, 23:08  [ТС]
Странно, как только я ее написал, у нее не было функционала читать файл типа NetworkInfo в OEM 866. У нее была одна функция. Ввод названия файла -> открытие файла в windows 1251 -> копирование его в буфер обмена.

Я поставил ее себе на работу и мне потребовало 2 этих dll для запуска. Потому я их поставил. Компилировал я тогда на другой версии mingw.

Позже я добавил функцию NetworkInfo. Компилировал с mingw 4.9.2. Dll требовать перестало.

На компах без mingw 4.9.2 не работает только NetworkInfo. Остальной функционал работает без проблем.

Добавлено через 1 минуту
Флагов и опций нет.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
04.10.2016, 23:13
Цитата Сообщение от FrankieRafie Посмотреть сообщение
Флагов и опций нет.
Release сборка или Debug?

Добавлено через 1 минуту
На тех компах и на твоём, в системной path, папка bin компилятора прописана?
0
0 / 0 / 0
Регистрация: 29.08.2016
Сообщений: 19
04.10.2016, 23:18  [ТС]
Упс, соврал. Есть флаг -fexceptions. Сейчас убрал.

Debug.

Да, тут и на компах, где работает, прописана bin папка компилятора.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.10.2016, 23:18
Помогаю со студенческими работами здесь

Кодировка OEM 866
Доброго времени суток. ђҐЈЁ®* - вот эту лабуду хотелось бы перевести в нормальный вид. Пробовал что вроде const Fn1 =...

TStringList и OEM-866
Добрый день. Столкнулся с проблемой разбивки строки по разделителю, используя TStringList. У меня есть файл с текстом в кодировке...

На вижу мой сайт на своем компе, на других компах его видно. Почему?
Прошу прощения, если не в том разделе, прошу перенести по адресу. Суть проблемы. Я создала сайт и выложила на хостинг. Мой сайт виден с...

Перекодировка из OEM-866 в Windows-1251
написан батник, результат каждой команды он выводит в лог так: 1&gt;&gt;%~dp0\log.txt 2&gt;&gt;&amp;1 понятно после завершения батника в этом логе...

Перекодировка текста из OEM 866 в UTF-8 или Ansi с загрузкой в Memo
Всем привет! Помогите пожалуйста. У меня в исходниках есть текстовые файлы в кодировке OEM 866, пытаюсь налету перекодировать содержимое...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru