Расширенная функция кодирования в Powershell для Google Charts - PullRequest
1 голос
/ 13 апреля 2011

У меня есть функция для простого кодирования, работающая в Powershell. Однако мне нужна функция для расширенного кодирования, потому что я буду рисовать более 62 точек. Функция Javascript для расширенного кодирования, предоставляемая Google: здесь

Пример простой функции кодирования:

function simpleEncoding ($valueArray) {
$simpleEncoding = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'

$total = 0
foreach ($value in $valueArray) {
    $total = $total + $value
}
for ($i = 0;$i -lt $valueArray.length;$i++) {

    $relativeValue = ($valueArray[$i] / $total)*62
    $relativeValue = [math]::round($relativeValue)

    $encodingValue = $simpleEncoding[$relativeValue]

    $Data = $Data + "" + $encodingValue

    }    
  return $data
}

Поэтому я ищу помощи в адаптации расширенной функции кодирования Javascript к Powershell.

1 Ответ

0 голосов
/ 14 апреля 2011

Мне кажется, у меня есть рабочая версия:

Function Get-ExtendedEncoding {
Param (
    $dataArray,
    $maxValue
)

$ExtendedMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-.'
$MapLength = $ExtendedMap.length

 for ($i = 0;$i -lt $dataArray.length;$i++) 
{
    $numvalue = [int]$dataArray[$i]
    $scaledValue = $MapLength * $MapLength * $numvalue / $maxValue

    If($scaledValue -gt ($MapLength * $MapLength) -1)
        {
           $chartData += ".."
        }
     Elseif ($scaledValue -lt 0)
        {
            $chartData += '__'
        }
     Else 
        {
            $quotient = [Math]::Floor($scaledValue / $MapLength)
            $remainder = $scaledValue - $MapLength * $quotient
            $chartdata += $ExtendedMap[$quotient] + $ExtendedMap[$remainder]
        }
 }
        return $chartdata
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...