2013-06-14 3 views
0

Я знаю, что его действительно глупый вопрос, но может кто-нибудь помочь мне понять эти строки:Брус понять синтаксис VBScript

dim dmnth = array() 
Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1) 
dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")" 

заранее спасибо.

+0

Redim в вашем случае изменит размер вашего массива на 3-мерный с тремя введенными значениями. – Regenschein

ответ

1

dim dmnth = array(); это устанавливает dmth в возвращаемое значение функции array(); что бы это ни было. Это ненужный шаг в вашей программе; если array() не делает ничего полезного, кроме как вернуть значение обратно.

Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1); это разрушает содержимое dmth; заменяя dmnth трехмерной матрицей с размерами, для каждого измерения соответственно, Rs_emp_count + 1, Rs_proj_count + 1 и total_days + 1. Все элементы очищаются.

dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")" присваивает pname & " (" & pid & ")" элементу массива (emp_cnt, prj_cnt, 0). Помните, что массивы в VBScript основаны на нуле; то есть (0, 0, 0) является допустимым элементом.

0

Сначала dmnth объявляется массивом. Затем он обновляется как трехмерный массив. Затем Emp_cnt, Prj_Cnt, 0th входа установлен быть PNAME & "(" & PID & ")"

2
  • dim dmnth = array()

    Это недопустимое заявление. В VBScript вы не можете объявить переменную и инициализировать ее значением в одном выражении. Это, вероятно, должно быть

    Dim dmnth 
    dmnth = Array() 
    

    или короче

    Dim dmnth : dmnth = Array() 
    

    который объявляет переменную dmnth и инициализирует переменный с пустым массивом. Это, однако, полезно только тогда, когда вы хотите создать пустой одномерный массив, который будет динамически расти, сохраняя его значения (что также может быть достигнуто с помощью ReDim arr(-1)). Поскольку ваш массив имеет 3 измерения, эта инициализация бессмысленна. Приведенную ниже команду хватит для объявления и инициализации.

  • Redim dmnth(Rs_emp_count + 1, Rs_proj_count + 1, total_days + 1)

    Если dmnth уже была объявлена, это изменяет переменную для 3-мерного массива с верхними пределами Rs_emp_count + 1 в размерности 1 м, Rs_proj_count + 1 в размерности 2 й и total_days + 1 в 3 rd измерение. Любое содержимое массива будет отброшено. Если dmnth не был объявлен, он объявляется и инициализируется как 3-мерный массив с заданными верхними границами.

  • dmnth(emp_cnt, prj_cnt, 0) = pname & " (" & pid & ")"

    Это ставит строку, построенную из pname и pid в поле массива в положении emp_cnt, prj_cnt, 0.

+1

+1, особенно для того, чтобы поймать проклятую ошибку. –

Смежные вопросы