Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
48
Task/SEDOLs/PowerShell/sedols.psh
Normal file
48
Task/SEDOLs/PowerShell/sedols.psh
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
function Add-SEDOLCheckDigit
|
||||
{
|
||||
Param ( # Validate input as six-digit SEDOL number
|
||||
[ValidatePattern( "^[0123456789bcdfghjklmnpqrstvwxyz]{6}$" )]
|
||||
[parameter ( Mandatory = $True ) ]
|
||||
[string]
|
||||
$SixDigitSEDOL )
|
||||
|
||||
# Convert to array of single character strings, using type char as an intermediary
|
||||
$SEDOL = [string[]][char[]]$SixDigitSEDOL
|
||||
|
||||
# Define place weights
|
||||
$Weight = @( 1, 3, 1, 7, 3, 9 )
|
||||
|
||||
# Define character values (implicit in 0-based location within string)
|
||||
$Characters = "0123456789abcdefghijklmnopqrstuvwxyz"
|
||||
|
||||
$CheckSum = 0
|
||||
|
||||
# For each digit, multiply the character value by the weight and add to check sum
|
||||
0..5 | ForEach { $CheckSum += $Characters.IndexOf( $SEDOL[$_].ToLower() ) * $Weight[$_] }
|
||||
|
||||
# Derive the check digit from the partial check sum
|
||||
$CheckDigit = ( 10 - $CheckSum % 10 ) % 10
|
||||
|
||||
# Return concatenated result
|
||||
return ( $SixDigitSEDOL + $CheckDigit )
|
||||
}
|
||||
|
||||
# Test
|
||||
$List = @(
|
||||
"710889"
|
||||
"B0YBKJ"
|
||||
"406566"
|
||||
"B0YBLH"
|
||||
"228276"
|
||||
"B0YBKL"
|
||||
"557910"
|
||||
"B0YBKR"
|
||||
"585284"
|
||||
"B0YBKT"
|
||||
"B00030"
|
||||
)
|
||||
|
||||
ForEach ( $PartialSEDOL in $List )
|
||||
{
|
||||
Add-SEDOLCheckDigit -SixDigitSEDOL $PartialSEDOL
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue