С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 308

Спарсить из полученного текста технические характеристики ПК

26.03.2024, 04:54. Показов 573. Ответов 7
Метки нет (Все метки)

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

Небольшое отступление:
С помощью phpseclib по SHH через PHP подключаюсь к локальной машине, чтобы ввести команду inxi -F и получить данные о характеристиках этой машины. Получаю целую простыню текста из которого мне нужно отдельно получить конкретные данные.

Вот пример получаемых данных:

Кликните здесь для просмотра всего текста
System:
Host: pc-name-x7-015.dom.dex Kernel: 6.15.1-1.ex7.linux.x86_64 arch: x86_64 bits: 64
Console: N/A Distro: RedOS release 7.3 (Final)
Machine:
Type: Desktop Mobo: Gigabyte model: B560M DS3H V2 v: x.x serial:
UEFI: American Megatrends LLC. v: F4 date: 11/03/2021
CPU:
Info: 6-core model: 11th Gen Intel Core i5-11400 bits: 64 type: MT MCP cache: L2: 3 MiB
Speed (MHz): avg: 4222 min/max: 800/4400 cores: 1: 4200 2: 4199 3: 4201 4: 4234 5: 4200 6: 4200
7: 4278 8: 4200 9: 4204 10: 4256 11: 4296 12: 4202
Graphics:
Device-1: Intel HD Graphics 530 driver: i915 v: kernel
Device-2: Logitech Webcam C310 driver: snd-usb-audio,uvcvideo type: USB
Display: server: X.org driver: X: loaded: modesetting unloaded: fbdev,vesa gpu: i915 tty: 80x40
resolution: 1: 1920x1080 2: 2560x1440
API: OpenGL Message: GL data unavailable in console. Try -G --display
API: Vulkan Message: No Vulkan data available.
Audio:
Device-1: Intel driver: snd_hda_intel
Device-2: Logitech Webcam C310 driver: snd-usb-audio,uvcvideo type: USB
Device-3: Intel driver: hid-generic,snd-usb-audio,usbhid type: USB
API: ALSA v: k5.16.2-1.el7.alteros.x86_64 status: kernel-api
Network:
Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169
IF: enp2s0 state: up speed: 100 Mbps duplex: full mac: d8:5e:d3:a8:7a:dc
Drives:
Local Storage: total: 1.36 TiB used: 59.17 GiB (4.2%)
ID-1: /dev/sda vendor: Western Digital model: WD10EZEX-08WN4A0 size: 931.51 GiB
ID-2: /dev/sdb vendor: Crucial model: CT500BX500SSD1 size: 465.76 GiB
Partition:
ID-1: / size: 449.02 GiB used: 59.02 GiB (13.1%) fs: ext4 dev: /dev/sdb4
ID-2: /boot size: 3.86 GiB used: 137.3 MiB (3.5%) fs: ext4 dev: /dev/sdb2
ID-3: /boot/efi size: 498.7 MiB used: 11 MiB (2.2%) fs: vfat dev: /dev/sdb1
Swap:
ID-1: swap-1 type: partition size: 4 GiB used: 0 KiB (0.0%) dev: /dev/sdb3
Sensors:
System Temperatures: cpu: 45.0 C mobo: N/A
Fan Speeds (rpm): N/A
Info:
Processes: 309 Uptime: 1d 1h 38m Memory: total: 8 GiB available: 7.57 GiB used: 3.3 GiB (43.6%)
Init: systemd target: graphical (5) Shell: sshd inxi: 3.3.30

Network:
Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet driver: r8169
IF: enp2s0 state: up speed: 100 Mbps duplex: full mac: d8:6e:d4:a2:5a:dc
IP v4: 100.160.80.185/24 type: noprefixroute scope: global
IP v6: fd80::da4e:d4ff:fea6:7adc/64 scope: link
WAN IP: ;; connection timed out; no servers could be reached

Красным цветом выделены характеристики, которые необходимо получить в виде отдельной переменной.
В целом все данные будут примерно такими, но мониторов может быть не 2, а 1, или даже 3.
Как и жёсткие диски. Могу предоставить данные с других ПК, для анализа.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.03.2024, 04:54
Ответы с готовыми решениями:

Технические характеристики сервера
Здравствуйте, у меня простаивает VPS сервер. Решил сделать из него VPN сервер для себя и друзей. Вот и возник вопрос: какие у него должны...

Технические характеристики LG MF-6543AFF
У нас на кухне бардовый кафель и малиновые обои. Чтобы все было в тон выбрали микроволновую печь с грилем LG MF-6543AFF. Как уже понятно ,...

Составить технические характеристики программы?
Где взять технические характеристики программы? сколько озу использует сколько процессор требуется и тд? Может есть какая нибудь программа...

7
Невнимательный
 Аватар для ft4l
2840 / 1268 / 358
Регистрация: 08.02.2013
Сообщений: 7,391
Записей в блоге: 2
26.03.2024, 11:35
Цитата Сообщение от Рафик Посмотреть сообщение
получить в виде отдельной переменной.
сомнительная затея )) до каких-нибудь изменений версии inxi +- ...
и например если
PHP
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
class InxiF {
    public  $var = [];
    private $Modes = [
        ['System',  [
            'Host'=>['']]],
        ['Machine', [
            'Type'=>['Mobo','model'],
            'UEFI'=>['v','date']]],
        ['CPU',     [
            'Info'=>['','model']]],
        ['Graphics',[
            'Device-1'=>[''],
            'resolution'=>['*']]],
        /*'Audio',*/
        ['Network', [
            'IF'=>['']]],
        ['Drives',  [
            'Local Storage'=>['total','used'],
            '*'=>['vendor','model','size']]],
        /*'Partition', 'Swap',*/
        ['Sensors', [
            'System Temperatures'=>['cpu']]],
        ['Info',    [
            'Processes'=>['Uptime','total','used:']]],
        ['Network', [
            'IP v4'=>[''],
            'IP v6'=>['']]],
    ];
    function __construct(string $txt) {
        $keys = array_column($this->Modes,0);
        $a = preg_split('/^(\w++):\h*+$\s*/m',$txt,-1,
                    PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
        //var_export($a);
        while ($pair = array_splice($a,0,2)){
            [$sect,$strs] = $pair;
            if ($sect !== pos($keys)) continue;// только по порядку, пропуск
            $Modes =& $this->Modes[key($this->Modes)][1];// ссыль на текущий
            //var_export($Modes);
            preg_match_all('/^([^:]+):\h+([^\r\n]*)\K/m',
                    $strs, $m, PREG_SET_ORDER);
            foreach($m AS list(,$k,$v)){
                if(isset($Modes['*']))$tmp =& $Modes['*'];
                elseif (!isset($Modes[$k])) continue;
                else $tmp =& $Modes[$k];                
                //var_export([$k, $tmp]);
                preg_match_all(
                    '/^((?>\h*[^\h:]++(?!:\h):?.?)+)\K|'
                    .'\b(\w*+):\h++((?>\h*[^\h:]++(?!:\h).??)*)\K/',
                    $v, $m, PREG_SET_ORDER);
                //var_export($m);
                foreach($m AS $a2){
                    if(!$a2[1]) array_splice($a2,0,2);
                    list($k2,$v2) = $a2;
                    if (!in_array($k2,$tmp) && !in_array('*', $tmp)) continue;
                    //var_export([$k2,$v2,"\n\n"]);
                    $this->var[$sect][$k][$k2] = $v2;
                }
            }
            next($keys);
            next($this->Modes);
        }
        reset($keys);
        reset($this->Modes);
        return $this;
    }
 
    function dump() {   
        var_export($this->var);
    }
}
 
$obj = new InxiF($txt);
$obj->dump();
+- ещё надо очистки некоторых поимённо, методы или там-же...
то это показывает неменее труднодоступные значения ))
PHP
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
array (
  'System' => 
  array (
    'Host' => 
    array (
      '' => 'pc-name-x7-015.dom.dex ',
    ),
  ),
  'Machine' => 
  array (
    'Type' => 
    array (
      'Mobo' => 'Gigabyte',
      'model' => 'B560M DS3H V2',
    ),
    'UEFI' => 
    array (
      'v' => 'F4',
      'date' => '11/03/2021',
    ),
  ),
  'CPU' => 
  array (
    'Info' => 
    array (
      '' => '6-core ',
      'model' => '11th Gen Intel Core i5-11400',
    ),
  ),
  'Graphics' => 
  array (
    'Device-1' => 
    array (
      '' => 'Intel HD Graphics 530 ',
    ),
    'resolution' => 
    array (
      1 => '1920x1080',
      2 => '2560x1440',
    ),
  ),
  'Network' => 
  array (
    'IF' => 
    array (
      '' => 'enp2s0 ',
    ),
    'IP v4' => 
    array (
      '' => '100.160.80.185/24 ',
    ),
    'IP v6' => 
    array (
      '' => 'fd80::da4e:d4ff:fea6:7adc/64 ',
    ),
  ),
  'Drives' => 
  array (
    'ID-1' => 
    array (
      'vendor' => 'Western Digital',
      'model' => 'WD10EZEX-08WN4A0',
      'size' => '931.51 GiB',
    ),
    'ID-2' => 
    array (
      'vendor' => 'Crucial',
      'model' => 'CT500BX500SSD1',
      'size' => '465.76 GiB',
    ),
  ),
  'Sensors' => 
  array (
    'System Temperatures' => 
    array (
      'cpu' => '45.0 C',
    ),
  ),
  'Info' => 
  array (
    'Processes' => 
    array (
      'Uptime' => '1d 1h 38m',
      'total' => '8 GiB',
    ),
  ),
)
это-ж из отдельной переменной доставать оттуда надо будет как $VAR[Drives][ID-2][size]
..хотя можно конечно туда-же в класс способов для упрощённия

Добавлено через 7 минут
поправки )
Code
1
2
3
4
5
6
7
        ['Network', [
            'IF'=>['mac']]],
 
и
 
                    '/^((?>\h*[^\h:]++(?!:\h):?.??)+)\K|'
                    .'\b(\w*+):\h++((?>\h*[^\h:]++(?!:\h).??)*)\K/',
0
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 308
26.03.2024, 12:34  [ТС]
ft4l, ого, ваша реализация с массивом даже ещё лучше, чем я мог себе представить.

Данные успешно получает, но не могу пока корректно вывести нужный элемент массива.
PHP
1
echo $obj->System->Host;
Или как?

Добавлено через 49 минут
Разобрался.
PHP
1
$obj->var["System"]["Host"][""]
Да, некоторые параметры так не удаётся получить, например мониторы или диски.
0
Невнимательный
 Аватар для ft4l
2840 / 1268 / 358
Регистрация: 08.02.2013
Сообщений: 7,391
Записей в блоге: 2
26.03.2024, 17:57
Лучший ответ Сообщение было отмечено Рафик как решение

Решение

Вариант 2
PHP
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
class InxiF {
    private $AS = [# Aliases
        'Host'  =>'',
        'PC'    =>[],
        'UEFI'  =>[],
        'CPU'   =>'',
        'iCPU'  =>'',
        'CPUTemp'=>'',
        'VDev1' =>'',
        'VRes'  =>[],
        'Mac'   =>'',
        'IPv4'  =>'',
        'IPv6'  =>'',
        'DrvTotal'=>'',
        'DrvUsed'=>'',
        'Drv'   =>[],
        'Uptime'=>'',
        'Mem'   =>'',
        'uMem'  =>'',
    ];
    private $Modes = [
        'System'=> [
            'Host'=>[''=>'Host']],
        'Machine'=> [
            'Type'=>['Mobo'=>'PC','model'=>'PC'],
            'UEFI'=>['v'=>'UEFI','date'=>'UEFI']],
        'CPU'=> [
            'Info'=>[''=>'CPU','model'=>'iCPU']],
        'Graphics'=> [
            'Device-1'=>[''=>'VDev1'],
            'resolution'=>['*'=>'VRes']],
        /*'Audio',*/
        'Network'=> [
            'IP v4'=>[''=>'IPv4'],
            'IP v6'=>[''=>'IPv6'],
            'IF'=>['mac'=>'Mac']],
        'Drives'=> [
            'Local Storage'=>['total'=>'DrvTotal','used'=>'DrvUsed'],
            '*'=>['vendor'=>'Drv','model'=>'Drv','size'=>'Drv']],
        /*'Partition', 'Swap',*/
        'Sensors'=> [
            'System Temperatures'=>['cpu'=>'CPUTemp']],
        'Info'=> [
            'Processes'=>['Uptime'=>'Uptime','total'=>'Mem','used'=>'uMem']],
    ];
 
    function __construct(string $txt) {
 
        $keys = array_flip(array_keys($this->Modes));
        $a = preg_split('/^(\w++):\h*+$\s*/m',$txt,-1,
                    PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
        // слияние двух секций Network + без лишних
        while ($pair = array_splice($a,0,2)){
            [$sect,$strs] = $pair;
            if (!isset($keys[$sect])) continue;
            if (is_int($keys[$sect])) $keys[$sect]= $strs;
            else $keys[$sect] .= $strs;
        }
        //var_export($keys);
        foreach($keys AS $sect =>  $strs){
            if (!isset($this->Modes[$sect])){
                if(isset($this->Modes['*']))$tmp =& $this->Modes['*'];
                else continue;
            }
            else $tmp =& $this->Modes[$sect];
            //$Modes =& $this->Modes[$sect];// ссыль на текущий
            preg_match_all('/^([^:]++):\h*([^\r\n]*)\K/m',
                    $strs, $m, PREG_SET_ORDER);
            //var_export([$tmp,$m,"\n\n\n"]);
            foreach($m AS $v){
                list(,$k,$v) = $v;
                $asterix=0;
                if (!isset($tmp[$k])){
                    if (!isset($tmp['*'])) continue;
                    $asterix=1;
                    $tmp2 =& $tmp['*'];
                } else $tmp2 =& $tmp[$k];
                preg_match_all(
                    '/^((?>\h*[^\h:]++(?!:\h):*.??)+)\K|'
                    .'\b(\w*+):\h++((?>\h*[^\h:]++(?!:\h):*.??)*)\K/',
                    $v, $m, PREG_SET_ORDER);
                //var_export([$tmp2,$m,"\n\n\n"]);
                foreach ($m AS $v2){
                    if ($v2[1]) list($k2,$v2) = $v2;
                    else  list(,,$k2,$v2) = $v2;
                    if(!isset($tmp2[$k2])) {
                        if(!isset($tmp2['*'])) continue;
                        else $link = $tmp2['*'];
                    } else $link = $tmp2[$k2];
                    
                    if ($asterix)
                        $this->AS[$link][$k][$k2] = $v2;
                    elseif (!is_array($this->AS[$link]))
                        $this->AS[$link] = $v2;
                    else $this->AS[$link][$k2] = $v2;
                }
            }
        }
        return $this;
    }
 
    function dump() {
        echo '<xmp>
        ', var_export($this->AS, 1), '
 
        </xmp>';
    }
    /*
Перегрузка свойств по полной как-то так
 
public __set(string $name, mixed $value): void
public __get(string $name): mixed
public __isset(string $name): bool
public __unset(string $name): void
 
тут просто типа хак :) массивы на первом уровне в свойства    */
    public function __get($name) {//
        if (!array_key_exists($name, $this->AS))
            return NULL;
        if (!is_array($this->AS[$name])) 
            return $this->AS[$name];
        return (object) $this->AS[$name];
    }
}
 
 
header('Content-type: text/plain; charset=UTF-8');
 
$obj = new InxiF($txt);
$obj->dump();
 
echo  "\n". $obj->UEFI->date ."\n";
// дальше массивы
var_export($obj->Drv->{"ID-1"});
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<xmp>
        array (
  'Host' => 'pc-name-x7-015.dom.dex',
  'PC' => 
  array (
    'Mobo' => 'Gigabyte',
    'model' => 'B560M DS3H V2',
  ),
  'UEFI' => 
  array (
    'v' => 'F4',
    'date' => '11/03/2021',
  ),
  'CPU' => '6-core',
  'iCPU' => '11th Gen Intel Core i5-11400',
  'CPUTemp' => '45.0 C',
  'VDev1' => 'Intel HD Graphics 530',
  'VRes' => 
  array (
    1 => '1920x1080',
    2 => '2560x1440',
  ),
  'Mac' => 'd8:6e:d4:a2:5a:dc',
  'IPv4' => '100.160.80.185/24',
  'IPv6' => 'fd80::da4e:d4ff:fea6:7adc/64',
  'DrvTotal' => '1.36 TiB',
  'DrvUsed' => '59.17 GiB (4.2%)',
  'Drv' => 
  array (
    'ID-1' => 
    array (
      'vendor' => 'Western Digital',
      'model' => 'WD10EZEX-08WN4A0',
      'size' => '931.51 GiB',
    ),
    'ID-2' => 
    array (
      'vendor' => 'Crucial',
      'model' => 'CT500BX500SSD1',
      'size' => '465.76 GiB',
    ),
  ),
  'Uptime' => '1d 1h 38m',
  'Mem' => '8 GiB',
  'uMem' => '3.3 GiB (43.6%)',
)
 
        </xmp>
11/03/2021
array (
  'vendor' => 'Western Digital',
  'model' => 'WD10EZEX-08WN4A0',
  'size' => '931.51 GiB',
)
0
 Аватар для sash23
563 / 410 / 259
Регистрация: 31.05.2016
Сообщений: 1,105
26.03.2024, 18:28
inxi разве не умеет выводить в json и xml?
1
168 / 146 / 32
Регистрация: 03.09.2018
Сообщений: 499
26.03.2024, 18:41
Цитата Сообщение от sash23 Посмотреть сообщение
inxi разве не умеет выводить в json и xml?
Умеет. Просто интересно было наблюдать решение на пустом месте) Я хотел ещё утром написать, но не стал))
0
Невнимательный
 Аватар для ft4l
2840 / 1268 / 358
Регистрация: 08.02.2013
Сообщений: 7,391
Записей в блоге: 2
26.03.2024, 18:52
sash23, а да )
--export [json|screen|xml]
See --output.

Но, как для разминки мозга, тоже интересно
0
2 / 2 / 1
Регистрация: 25.06.2013
Сообщений: 308
27.03.2024, 05:16  [ТС]
Именч, глумитесь над новичками?)

ft4l, спасибо вам за помощь.

Я разобрался вот так:
$txt = $ssh->exec('inxi -F --output json --output-file print');

Но JSON выдаёт результаты с каким-то мусором, поэтому я его почистил регуляркой:
$txt = preg_replace('!\d{3,3}\#\d{1,2}\#\d{1,2}\#!', '', $txt);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2024, 05:16
Помогаю со студенческими работами здесь

Технические характеристики по документации IIS5.1
Pomogite plz. Gde mozno dostatj tehni4eskuju dokumentaciju po IIS5.1? T.e. Kol-vo polzovatelej, kot. moget odnovremenno obrabativatj web...

Технические характеристики как плагиат?
Здравствуйте! Интересует такая тема: Есть например сайт, каталог мобильных телефонов и на сайте описаны характеристики разных мобильных...

Основные технические характеристики радиодеталей
Не знаю туда ли я обратился , но все же : Подскажите несколько основных технических характеристик радиодеталей (резисторы, конденсаторы,...

Процессор AMD C-50. Полные технические характеристики.
Нигде не могу найти полные характеристики процессора. Особенно интересует TDP и максим температура ядер. Core Temp 1.0 железно говорит,...

В каком файле код, поменять описание на технические характеристики
Приветствую вас! Подскажите пожалуйста: Сайт: тема STORE + woocomerce, сайт с техникой. Нужно поменять название подраздела в карточке...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru