Tag: Programming

Hashtable doorlopen met GetEnumerator()

Meestal doorloop je een hastable doormiddel van de sleutels of de waardes. Een andere methode is om de lijst in zijn geheel door te lopen via de functie GetEnumerator().

$myList = @{}
$myList.Add("sleutel01","waarde01")
$myList.Add("sleutel02","waarde02")
$myList.Add("sleutel03","waarde03")

Lijst doorlopen met GetEnumerator()

PS C:\> $myList.GetEnumerator() | % { "$($_.Key) $($_.Value)" }
sleutel01 waarde01
sleutel03 waarde03
sleutel02 waarde02

Lijst doorlopen via het sleutelveld

PS C:\> $myList.Keys | % { "$($_) $($myList[$_])" }
sleutel01 waarde01
sleutel03 waarde03
sleutel02 waarde02

Opmaak aanpassen van een cijferreeks uit een string

Powershell biedt met de format operator enorm veel mogelijkheden om de uitvoer te manipuleren. Deze functionaliteit kan handig gebruikt worden om een string met een cijferreeks anders op te maken. Denk hierbij aan bijvoorbeeld telefoonnummers, datum etc.

Om de cijferreeks op te kunnen maken moet de string eerst omgezet worden naar een integer waarde. Afhankelijk van de lengte van de cijferreeks kan er gekozen worden voor een 32 of 64 bits integer. (ToInt32 / ToInt64). De waarde 10 geeft aan dat de input bestaat uit een decimaal getal.

Punten en komma’s kunnen fout geïnterpreteerd worden door ToInt. Verwijder deze eerst uit de string. ToInt zal niet gehele getallen afronden naar een geheel getal. Het min teken is niet toegestaan. ToInt kan alleen met positieve getallen werken.

Datum omzetten van 20180128 naar 2018-01-28:

$a = "20180128"
"{0:####-##-##}" -f [convert]::ToInt32($a,10)

Telefoonnummer omzetten van 0031651541301 naar (+31) 6 51 54 1301:

$a = "0031651541301"
"{0:(+##) # ## ## ####}"  -f [convert]::ToInt64($a,10)
Translate »