124909
Jan 11, 2016, updated at Jan 12, 2016 (UTC)
1553
2
0
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:
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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 292773
Url: https://administrator.de/contentid/292773
Printed on: April 23, 2024 at 15:04 o'clock
2 Comments
Latest comment
$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