none
Работа с блоками в массиве RRS feed

  • Вопрос

  • Коллеги, не нашел ответа на свой вопрос или возможно его до конца не осознал.

    Прошу помощи.

    У меня есть $mass массив, в нем есть 7 блоков (первый блок начинается с $mass[2]) .

    Структура блока:

    1 - номер региона (R1) нам известно, что начало блока всегда будет в [2],[8],[14],[20],[26],[32],[38]

    2 - данные  (D2)

    3 - данные (D3)

    4 - данные (D4)

    5 - данные (D5)

    6 - данные (D6) 

    Планируемая логика:

    1. Смотрим в первый блок [2], приравниваем значения к переменным, выполняем код.

    2. Смотрим в начало второго блока [8], приравниваем значения к переменным, выполняем код.

    Сейчас я явно указываю в коде:

    $MR1 = $body_array[38]
    $acceptor_entity_nameMR = "ID"
    $acceptor_list_nameMR = "MR"
    $queryMR = new-object Microsoft.SharePoint.SPQuery

    $queryMR.query = "
    <Where>
          <Eq>
             <FieldRef Name='$acceptor_entity_nameMR' />
             <Value Type='Counter'>$MR1</Value>
          </Eq>
       </Where>"

    $acceptor_listMR = $SpWeb.Lists[$acceptor_list_nameMR]
    $collectionMR = $acceptor_listMR.GetItems( $queryMR )

    #=====================================================

    $MrID = $collectionMR[0].ID

    #$MrID.ToString() $PeriodID = $collection[0].ID #$PeriodID.ToString() if( !($Issue_list) ) { write-host "ERROR: Не найден список '$Issue_name'" } else { $Issue_item = $Issue_list.Items.Add() $Issue_item["name1"] = new-object Microsoft.Sharepoint.SPFieldLookupValue ($MrID,$collectionMR[0].Name) $Issue_item["name2"] = new-object Microsoft.Sharepoint.SPFieldLookupValue ($PeriodID, $collection[0].Name) $Issue_item["name3"] = $Issue_type $Issue_item["name4"] = $mass[3] $Issue_item["name5"] = $mass[4] $Issue_item["name6"] = $mass[6] $Issue_item["name7"] = $mass[7] update $Issue_item }




    • Изменено RitroF 5 июня 2012 г. 6:25

Ответы

  • Если $mass[2] тоже надо в переменные, то так:

    for ($j=2; $j -lt 39;$j+=6){
    $i = 0
    $mass[($j)..($j+5)] | ForEach-Object {Set-Variable -name ("Vr"+$i) -value $_ ;$i++}
    #тут блок кода, который обрабатывает переменные $Vr0 - $Vr4
    }

    Тогда будет:

    $Vr0 =  $mass[2]

    $Vr1 =  $mass[3]

    $Vr2 =  $mass[4]

    $Vr3 =  $mass[5]

    $Vr4 =  $mass[6]

    $Vr5 =  $mass[7]


    • Изменено Deft_ 5 июня 2012 г. 7:03
    • Предложено в качестве ответа Deft_ 5 июня 2012 г. 8:10
    • Помечено в качестве ответа RitroF 6 июня 2012 г. 5:09

Все ответы