Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 24

Выборка компов в сравнении

12.03.2020, 16:55. Показов 2719. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, мой находчивый помощник!
У меня к тебе (к вам) вопрос:
Есть много компов в AD. Все они называются по определенному шаблону. В имени присутствует буква и число, типа A1, A2, A3 ..... до бесконечности.
Используя конструкцию типа: Get-ADComputer -Filter {Name -like "A*"} | Select-Object -last 1 | Format-Table Name
мне выводится последний по счётчику. Так вот, мне нужно чтобы он мне вываливал все пропуски, т.е. если между A555 и A557 нет имени A556 (удален, отсутствует, не важно), чтобы показал. И так по всему массиву. Что-то голову поломал уже.
Спасибо, друг!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.03.2020, 16:55
Ответы с готовыми решениями:

Не срабатывает выборка при сравнении по датам
Делаю простую выборку в ADO .mdb: qry1.SQL.text:='select * from firms where ((data_reg<:pr0) and ((data_unreg is null) or...

Выборка без ключевых слов/Выборка без столбцов/Выборка с условием
Нужно сделать 2 типа выборки в отдельный столбец: #1 без ключевых слов типа "АРБУЗ, ДЫНЯ" #2 без данных содержащихся в трех...

Выборка уникальных записей с максимальными датами, и затем выборка по найденому
Как вообще такой запрос лучше составить? У меня есть таблица User(id) и Message( id, fromUserId, toUserId, sendDate). Мне нужно...

27
㊙️
 Аватар для Fors1k
1316 / 244 / 57
Регистрация: 10.08.2018
Сообщений: 574
13.03.2020, 02:24
Цитата Сообщение от dezhnevo Посмотреть сообщение
нужно чтобы он мне вываливал все пропуски, т.е. если между A555 и A557 нет имени A556, чтобы показал
PowerShell
1
2
3
4
5
6
7
8
9
10
param(
    $filer="A", # Фильтр имени
    $num=1      # Номер первого ПК
)cls
 
((Get-ADComputer -Filter {Name -like "$filer*"}).name|sls "(?<=.)\d+").Matches.Value|%{
    while($num -ne $_){$res+=@($num++)}$num++
}
 
"ОТСУТСТВУЮТ ПК:";$res|%{$filer+$_}
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 24
13.03.2020, 09:47  [ТС]
Привет! Что-то не Алёша твоё предложение, просто висит и ничего не происходит
Сделали так, все работает:

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$Computers = Get-ADComputer -Filter "name -like 'A*'" | Select-Object Name | Sort-Object Name
foreach ($Computer in $Computers){
 
$Computer = $Computer.Name
[int]$CurrentNumber = ($computer | Select-String -Pattern '\d+$').matches.Value
 
if ($CurrentNumber.CompareTo($PreviousNumber+1).Equals( 1 ))
    {
      $MissingNumber = $PreviousNumber+1
      Write-host "$SearchComputers$MissingNumber"
    }
 
 [int]$PreviousNumber = $CurrentNumber
}
Спасибо, все равно!
0
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
13.03.2020, 11:00
dezhnevo,
Почему не Compare-Object
PowerShell
1
2
3
4
5
6
7
8
9
10
11
# Коллекция компьютеров (цифровой вариант)
$computer_numbers = (Get-ADComputer -filter {Name -like "A*"}).name |
Select-object -unique @{Name = 'Name'; Expression = {[double]([regex]'\d+').match($_).value}} |
Sort-object -Property Name
 
# Эталонный рейндж
$numbers_range = 1..(($computer_numbers | select-object -last 1).name)
 
# Сравним два объекта
$diff = Compare-Object -ReferenceObject $numbers_range -DifferenceObject $($computer_numbers.name)
$only_reference = ($diff | ? {$_.SideIndicator -eq "<="}).InputObject
0
㊙️
 Аватар для Fors1k
1316 / 244 / 57
Регистрация: 10.08.2018
Сообщений: 574
13.03.2020, 11:43
Цитата Сообщение от dezhnevo Посмотреть сообщение
Что-то не Алёша твоё предложение
Запишем:a2, a4, a6, a9, a10, a14, b7
Пропущены:a1, a3, a5, a7, a8, a11, a12, a13

Тест кода Averson
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
param(
    $filer="A", # Фильтр имени
    $num=1      # Номер первого ПК
)cls
 
# таблица с данными
$text=@("a2","a4","a6","a9","a10","a14","b7")
 
$table = New-Object system.Data.DataTable “SampleTable”
$column1 = New-Object system.Data.DataColumn name,([string])
$table.columns.add($column1)
$text|%{$row = $table.NewRow();$row.name = $_;$table.Rows.Add($row)}
 
# Поиск
(($table|? name -like "a*").name|sls "\d+").Matches.Value|%{
    while($num -ne $_){$res+=@($num++)}$num++
}
 
"ОТСУТСТВУЮТ ПК:";$res|%{$filer+$_}
Ответ:
ОТСУТСТВУЮТ ПК:
A1
A3
A5
A7
A8
A11
A12
A13


Тест кода dezhnevo
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# таблица с данными
$text=@("a2","a4","a6","a9","a10","a14","b7")
cls
$table = New-Object system.Data.DataTable “SampleTable”
$column1 = New-Object system.Data.DataColumn name,([string])
$table.columns.add($column1)
$text|%{$row = $table.NewRow();$row.name = $_;$table.Rows.Add($row)}
 
# Поиск
$Computers = $table|? name -like "a*" | Select-Object Name | Sort-Object Name
foreach ($Computer in $Computers){
 
    $Computer = $Computer.Name
    [int]$CurrentNumber = ($computer | Select-String -Pattern '\d+$').matches.Value
 
    if ($CurrentNumber.CompareTo($PreviousNumber+1).Equals( 1 )){
        $MissingNumber = $PreviousNumber+1
        Write-host "$SearchComputers$MissingNumber"
    }
 
 [int]$PreviousNumber = $CurrentNumber
}
Ответ:
1
11
3
5
7

Не найдены: 8,12,13

Тест кода v_svitere
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# таблица с данными
$text=@("a2","a4","a6","a9","a10","a14","b7")
cls
$global:table = New-Object system.Data.DataTable “SampleTable”
$column1 = New-Object system.Data.DataColumn name,([string])
$table.columns.add($column1)
$text|%{$row = $table.NewRow();$row.name = $_;$table.Rows.Add($row)}
 
# Поиск
# Коллекция компьютеров (цифровой вариант)
$computer_numbers = ($table|? name -like "a*").name |
Select-object -unique @{Name = 'Name'; Expression = {[double]([regex]'\d+').match($_).value}} |
Sort-object -Property Name
 
# Эталонный рейндж
$numbers_range = 1..(($computer_numbers | select-object -last 1).name)
 
# Сравним два объекта
$diff = Compare-Object -ReferenceObject $numbers_range -DifferenceObject $($computer_numbers.name)
$only_reference = ($diff | ? {$_.SideIndicator -eq "<="}).InputObject
$diff.inputobject
Ответ:
1
3
5
7
8
11
12
13
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
13.03.2020, 12:32
Цитата Сообщение от Averson Посмотреть сообщение
Тест
Справедливости ради:
Там, конечно, у dezhnevo есть ошибки, но если сравнивать производительность методов:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
[array]$a= 1..10000
[array]$b= 1..100+120..1000+1010..10000
 
(1..100|%{(measure-command{$b|
%{$i,$res=1,$null}{while($i -ne $_){$res+=@($i++)};$i++}}).totalmilliseconds}|
measure -ave).average
"Result1: {0}" -f (-join $res)
""
 
(1..100|%{(measure-command{$i,$res=1,$null;foreach ($num in $b){
    while($i -ne $num){$res+=@($i++)}
    $i++
}}).totalmilliseconds}|
measure -ave).average
"Result2: {0}" -f (-join $res)
""
 
(1..100|%{(measure-command{$res=$null;$res = (diff $a $b).InputObject}).totalmilliseconds}|
measure -ave).average
"Result3: {0}" -f (-join $res)
то получим результат, что цикл foreach, наиболее производительный, в отличии от Foreach-Object и Compare-Object
2
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 24
13.03.2020, 12:58  [ТС]
Так, ща буду пробовать....
0
Заблокирован
13.03.2020, 14:20
Цитата Сообщение от YuS_2 Посмотреть сообщение
цикл foreach, наиболее производительный, в отличии от Foreach-Object и Compare-Object
Интересно как...
$b|%{} - это же по сути foreach($_ in $b){} , а разница в скорости и правда есть, аж в ~три раза с каждым методом Загадка...
YuS_2, спасибо за информацию!
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
13.03.2020, 17:47
Цитата Сообщение от Sallyy Посмотреть сообщение
это же по сути
не так, это отличающиеся операции...
классический foreach дает преимущество за счет потребления памяти и кроме того, там есть зависимость от типа данных, от операций производимых с ними и от объема данных тоже есть зависимость. При некоторых условиях, Foreach-Object может работать быстрее стандартного цикла.
Кроме того, foreach-object работает сразу же с поступающими данными по конвейеру, а цикл foreach будет ожидать получение всей коллекции... собственно, поэтому последний и потребляет больше ресурсов.
Ну и ещё отличие цикла в том, что он "не умеет" передавать данные по конвейеру, а это заставляет использовать посредников в виде массивов, что в случае с объемными данными, естественно, приведет к большому расходу памяти...
как-то так...

Кстати, в данном, конкретном случае, относительно темы топика, методы работы с циклами, можно ещё ускорить, если оптимизировать работу с массивами, т.е. вместо пересоздания массивов операцией +=, сразу создавать конечный массив (нам ведь известно число компьютеров, ну или хотя бы конечный номер) и его заполнять, эта операция гораздо производительнее.
0
㊙️
 Аватар для Fors1k
1316 / 244 / 57
Регистрация: 10.08.2018
Сообщений: 574
13.03.2020, 23:52
Цитата Сообщение от YuS_2 Посмотреть сообщение
цикл foreach, наиболее производительный
Цитата Сообщение от YuS_2 Посмотреть сообщение
Кстати, можно ещё ускорить, если оптимизировать работу с массивами
Я правильно понял, как будет выглядеть топ вариант?
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
param(
    $filer="A", # Фильтр имени
    $num=1      # Номер первого ПК
)cls
 
# таблица с данными
$text=@("a2","a4","a6","a9","a10","a14","b7")
 
$table = New-Object system.Data.DataTable “SampleTable”;$column1 = New-Object system.Data.DataColumn name,([string]);$table.columns.add($column1);$text|%{$row = $table.NewRow();$row.name = $_;$table.Rows.Add($row)}
 
# Поиск
$res = New-Object System.Collections.ArrayList
$arr=(($table|? name -like "a*").name|sls "\d+").Matches.Value
foreach($pc in $arr){
    while($num -ne $pc){$res.add($num++)|out-null}$num++
}
 
"ОТСУТСТВУЮТ ПК:";$res|%{$filer+$_}
0
0 / 0 / 0
Регистрация: 20.11.2018
Сообщений: 24
14.03.2020, 11:27  [ТС]
Чёт не понял, как это он какие-то выбирает, а какие-то оставляет. В моем случае, проверил, ничего не пропускает. Странная логика работы

PowerShell
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
# таблица с данными
$text=@("a2","a4","a6","a9","a10","a14","b7")
cls
$table = New-Object system.Data.DataTable “SampleTable”
$column1 = New-Object system.Data.DataColumn name,([string])
$table.columns.add($column1)
$text|%{$row = $table.NewRow();$row.name = $_;$table.Rows.Add($row)}
 
# Поиск
$Computers = $table|? name -like "a*" | Select-Object Name | Sort-Object Name
foreach ($Computer in $Computers){
 
    $Computer = $Computer.Name
    [int]$CurrentNumber = ($computer | Select-String -Pattern '\d+$').matches.Value
 
    if ($CurrentNumber.CompareTo($PreviousNumber+1).Equals( 1 )){
        $MissingNumber = $PreviousNumber+1
        Write-host "$SearchComputers$MissingNumber"
    }
 
 [int]$PreviousNumber = $CurrentNumber
}
 
 
Ответ:
1
11
3
5
7
Не найдены: 8,12,13
Добавлено через 2 минуты

Добавлено через 1 минуту
Кстати, в данном, конкретном случае, относительно темы топика, методы работы с циклами, можно ещё ускорить, если оптимизировать работу с массивами, т.е. вместо пересоздания массивов операцией +=, сразу создавать конечный массив (нам ведь известно число компьютеров, ну или хотя бы конечный номер) и его заполнять, эта операция гораздо производительнее.
Почему количество известно? Оно может меняться. Нет фиксированного числа
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
14.03.2020, 11:46
Цитата Сообщение от Averson Посмотреть сообщение
Я правильно понял, как будет выглядеть топ вариант?
Не знаю, тут надо собирать в кучу всё и тестировать при прочих равных.
Не претендуя на истину в последней инстанции, я бы сделал так:
PowerShell
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
param(
    $flt="A",   # Фильтр имени
    $num=1,     # Номер первого ПК
    $lim=10000  # Конечный номер числа компьютеров
)
 
# Тестовая коллекция имен компьютеров
$tmpnum = 1..10+20..50+60..80+90..$lim
$arr = new-object system.collections.generic.list[system.string]
for ($i=0;$i -lt $tmpnum.length;$i++){
    $null = $arr.add(($flt+$tmpnum[$i]))
}
 
<#
# Реальная коллекция
$arr = (Get-ADComputer -Filter "name -like 'A*'" ).name
#>
 
# Заполняем массив имеющимися в наличии именами
$res = new-object 'string[]' $lim
foreach ($item in $arr){
    $res[[int]($item -replace '\D') - 1] = $item
}
 
# Результат, отсутствующие имена по числовому порядку
for ($i=0;$i -lt $res.count;$i++){
    if (!$res[$i]){$flt + ($i+1)}
}
Добавлено через 5 минут
Цитата Сообщение от dezhnevo Посмотреть сообщение
Нет фиксированного числа
При получении списка машин, число их будет конечно, в любом случае.
Вот, последний по порядку номер из имени (там ведь числовая нумерация, правильно?), мы и можем принять за конечное число компьютеров. Нет?
0
 Аватар для v_svitere
774 / 423 / 137
Регистрация: 03.06.2009
Сообщений: 1,223
Записей в блоге: 4
14.03.2020, 12:27
Лучший ответ Сообщение было отмечено YuS_2 как решение

Решение

Мне если, честно лень замерять, но есть еще LINQ-вариант)
PowerShell
1
2
3
4
5
6
7
8
9
10
# Коллекция компьютеров (цифровой вариант)
$computer_numbers = (Get-ADComputer -filter {Name -like "A*"}).name |
Select-object -unique @{Name = 'Name'; Expression = {[double]([regex]'\d+').match($_).value}} |
Sort-object -Property Name
 
# Эталонный рейндж
$numbers_range = 1..(($computer_numbers | select-object -last 1).name)
 
# Сравним два объекта
[system.linq.Enumerable]::Except([double[]]$numbers_range, [double[]]$($computer_numbers.name))
1
 Аватар для volodin661
6685 / 2277 / 347
Регистрация: 10.12.2013
Сообщений: 7,858
14.03.2020, 13:05
я сильно не всматривался, но где граничное условие для правого конца последовательности ?

последнее значение из Get-ADComputer -Filter {Name -like "A*"} таковым явно
являться не может.

Добавлено через 4 минуты
это - первое.
а второе, зачем вообще это надо ? ( вопрос автору Темы)
0
㊙️
 Аватар для Fors1k
1316 / 244 / 57
Регистрация: 10.08.2018
Сообщений: 574
14.03.2020, 16:53
Цитата Сообщение от v_svitere Посмотреть сообщение
Мне если, честно лень замерять, но есть еще LINQ-вариант)
Я не поленился замерить, и linq просто уничтожил остальные варианты)))
PowerShell
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
[long[]]$a.gettype()= 1..10000
[long[]]$b= 1..100+120..1000+1010..10000
cls
 
$table = New-Object system.Data.DataTable “measure”;$column1 = New-Object system.Data.DataColumn Method,([string]);
$column2 = New-Object system.Data.DataColumn 'Time(ms)',([float]);$table.columns.add($column1);$table.columns.add($column2)
 
$feo=(1..20|%{(measure-command{$b|
%{$i,$res=1,$null}{while($i -ne $_){$res+=@($i++)};$i++}}).totalmilliseconds}|
measure -ave).average
$row=$table.NewRow();$row.Method='ForEach-Object';$row.'time(ms)'=$feo;$table.Rows.Add($row)
"Result1: {0}" -f (-join $res)
""
$fe=(1..20|%{(measure-command{$i,$res=1,$null;foreach ($num in $b){
    while($i -ne $num){$res+=@($i++)}
    $i++
}}).totalmilliseconds}|
measure -ave).average
$row=$table.NewRow();$row.Method='ForEach';$row.'time(ms)'=$fe;$table.Rows.Add($row)
"Result2: {0}" -f (-join $res)
""
$diff=(1..20|%{(measure-command{$res=$null;$res = (diff $a $b).InputObject}).totalmilliseconds}|
measure -ave).average
$row=$table.NewRow();$row.Method='Compare-Object';$row.'time(ms)'=$diff;$table.Rows.Add($row)
"Result3: {0}" -f (-join $res)
""
$linq=(1..20|%{(measure-command{$res=$null;$res = [system.linq.Enumerable]::Except($a, $b)
}).totalmilliseconds}|
measure -ave).average
$row=$table.NewRow();$row.Method='Linq.Enumerable';$row.'time(ms)'=$linq;$table.Rows.Add($row)
"Result4: {0}" -f (-join $res)
""
$table|sort 'time(ms)'
Результат:
Method
------
Linq.Enumerable
ForEach
ForEach-Object
Compare-Object
Time(ms)
--------
0,112935
40,33058
171,949
196,0043


Добавлено через 27 минут
По итогу всех наших исследований, для себя я вижу вот таким топ вариант решения:
PowerShell
1
2
3
4
5
6
7
8
9
param(
    $filter="A", # Фильтр имени
    $num=1      # Номер первого ПК
)cls
#-- Поиск
$PCnum=[long[]]((Get-ADComputer -filter {Name -like "$filter*"}).name|sls "\d+").Matches.Value
$ex=[system.linq.Enumerable]::Except([long[]]($num..$PCnum[-1]), $PCnum)
#-- Результат
"ОТСУТСТВУЮТ ПК:";$ex|%{$filer+$_}
И, кстати, получается с linq-способом не нужно беспокоиться о пересоздании массивов операцией +=
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
16.03.2020, 00:24
Цитата Сообщение от volodin661 Посмотреть сообщение
таковым явно
являться не может.
Не может, если именно так... но может, если так:
Цитата Сообщение от v_svitere Посмотреть сообщение
@{Name = 'Name'; Expression = {[double]([regex]'\d+').match($_).value}}
а потом, так:
Цитата Сообщение от v_svitere Посмотреть сообщение
Sort-object -Property Name
Цитата Сообщение от Averson Посмотреть сообщение
linq просто уничтожил остальные варианты
что не удивительно.
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
16.03.2020, 08:05
PowerShell
1
2
3
4
5
6
7
8
9
10
param(
    $filter="A", 
    $num=1
)
 
Clear-Host
 
$PCnum=[long[]](((Get-ADComputer -filter {Name -like "$filter*"}).Name.Substring($filter.Length - 1)))
$ex = [system.linq.Enumerable]::Except([long[]]($num..$PCnum[-1]), $PCnum)
"ОТСУТСТВУЮТ ПК:"; $ex.Foreach({"$($filter)$($_)"})
А если вот так измерить?
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,214
16.03.2020, 10:12
Цитата Сообщение от alhaos Посмотреть сообщение
А если вот так измерить?
Измерить что, вернее для чего? Относительно чего сравнение проводить?
Кроме того, такой момент:
Цитата Сообщение от alhaos Посмотреть сообщение
...
$filter="A",
...
... .Substring($filter.Length - 1)
- что дает эта подстрока?
0
 Аватар для alhaos
1929 / 545 / 154
Регистрация: 20.02.2019
Сообщений: 2,663
Записей в блоге: 65
16.03.2020, 10:35
У меня пара вопросов, к тому действу к которому тут обычно сводится.

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

Если критерием качества скрипта ставить скорость обработки, и допустить, что имена компов будут только prefix(num) тогда substring думаю будет всегда выгоднее regex... и .foreach() будет быстрее чем конвейер...

К чему стремимся?
0
16.03.2020, 11:47

Не по теме:


alhaos

Если критерием качества скрипта ставить скорость обработки
На самом деле, я вообще не считаю это самым главным критерием, более того, считаю, что уделять время такой оптимизации нужно, только для реально "тяжелых" задач.

Мои приоритеты примерно такие)
1. Алгоритм - понятный и продуманный, без лишних действий
2. Грамотное оформление
3. Быстродействие

На практике, примерно из 400 с лишним задач, оптимизацию по быстродействию пришлось проводить ну, наверное раз 5-6
Все остальные решения, отрабатывают предельно быстро, насколько это позволяет сама задача - за счет алгоритма и правильных инструментов.
Пытаться сэкономить миkлисекунды, когда у тебя командлет get-messagetrackinglog отрабатывает 10 минут - такое себе :)

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

Выборка задолженностей по таблице (выборка строк с пустыми ячейкам даты оплаты) для отчета
Имеется таблица учета продаж, в ней нужно сделать выборку по дате оплаты для ежемесячного отчета. То есть, вначале ввести дату начала...

Выборка из Combobox, причем выборка должна быть частичной
Добрый день. Подскажите пожалуйста как реализовать такого рода задачу: Есть 4 Combobox, в каждом Combobox по 10-ть записей, при...

Wi-fi на 30 компов
Народ, подскажите, как лучше организовать wi-fi сеть на 30 машин. Какое для этого оборудование лучше выбрать? Согласен, что для стольких...

Вопрос о сравнении
Есть две строки Adrey Vano Меня интересует следующее. Нужно выстроить их по алфавиту. При с сравнении на &gt;,&lt;, что будет...

Выборка из таблици товаров по самому максимальному рейтингу магазина, рейтинг мазаницов если есть одиноковые, выборка уже по минимальной цене
Всем привет, нужна помошь. Имеется следующая таблица товаров Таблица: products её колонки products_id - идентификатор...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru