124909
Goto Top

Powershell: Array solange durchsuchen, wie Bedingung erfüllt ist

Hallo Freunde ich stehe vor einen kleinem Denkproblem.

Und zwar möchte ich ein Array mit bestimmten Werten (2er Potenzen) solange durchsuchen, bis der Wert in dem Array nicht mehr kleiner oder gleich einer Zahl X ist...

So habe ich mir das bisher gedacht:

 
#Array mit Werten 2^0 bis 2^32 :(Ich weiß eine For-Schleife hätte es hier auch gemacht, aber aus Formatierungsgründen benötige ich es so)

$Inkrement = @("1","2","4","8","16","32","64","128","256","512","1024",  
"2048","4096","8192","16384","32768","65536","131072","262144","524288",  
"1048576","2097152","4194304","8388608","16777216","33554432","67108864",  
"134217728","268435456","536870912","1073741824","2147483648","4294967296")  

# Die Zahl x: 
# Später werden es mehrere Zahlen...aber fürs erste möchte ich es erstmal mit einer hinbekommen :D

$zahl = "12347"  

$indexzahl = 0;
$i =0

# Meine Schleife:

$Inkrement | ForEach-Object {
$i++
if ($zahl -le $Inkrement[$i]){
$indexzahl++
Write-Host die Zahl $zahl ist kleiner als der Wert mit dem Index $indexzahl}
}

Im Prinzip soll das Array Wert für Wert durchgegangen werden, bei jedem Wert der nicht kleiner oder gleich der Zahl X ist soll $indexzahl um 1 erhöht werden. Ist dann die Stelle erreicht wo der Wert im Array größer als die Zahl X ist, soll die $indexzahl mich auf die Zahl im $Array verweisen.

Hoffe habe es einigermaßen verständlich geschrieben...

Vielen Dank vorab face-smile

Content-Key: 292773

Url: https://administrator.de/contentid/292773

Printed on: April 23, 2024 at 15:04 o'clock

Mitglied: 114757
Solution 114757 Jan 11, 2016, updated at Jan 12, 2016 at 07:38:16 (UTC)
Goto Top
$inkrement = 0..32 | %{[math]::Pow(2,$_)}
$zahl = 17000
$index = ($Inkrement | ?{$_ -le $zahl}).count
write-host "Index der nächst größeren Zahl: $index"  

"Strings" als Zahl zu vergleichen funktioniert nicht der Herrr :-P, die musst du schon zu Double / Float / Decimal konvertieren !

Gruß jodel32
Mitglied: 124909
124909 Jan 12, 2016 at 07:38:10 (UTC)
Goto Top
Ohman daran habe ich überhaupt nicht gedacht :p Aber es läuft und wieder was dazu gelernt, Danke!