Тема: VBS: Отличие коллекции от массива
Работать с элементами коллекции можно через For Each? Но не могу понять почему у меня происходит присвоение корректно?
Ведь я работаю с коллекцией ? А по факту получается обращаюсь с любым из элементов данной коллекции
dim UserActiv
dim UserSettingsLine
dim UserHowMuchAdres
' Переменная для обнуления данных в таблицах
Dim FilesSelectElementHave
FilesSelectElementHave = 0
' Переменные созданные для работы с данными пользователя
dim UserSettingsLogin()
dim UserSettingsAdres()
dim UserSettingsLastName()
dim UserSettingsName()
dim UserSettingsMiddleName()
dim UserSettingsEmail()
dim UserSettingsPhone()
dim UserSettingsTabel()
dim UserSettingsOtdel()
' переменная для определения доступности профиля
dim UserSettingsDostup()
' Обозначение размерности первого массива
reDim UserSettingsLogin(0)
reDim UserSettingsAdres(0)
reDim UserSettingsLastName(0)
reDim UserSettingsName(0)
reDim UserSettingsMiddleName(0)
reDim UserSettingsEmail(0)
reDim UserSettingsPhone(0)
reDim UserSettingsTabel(0)
reDim UserSettingsOtdel(0)
reDim UserSettingsDostup(0)
' Считывание файла конфигурации пользователя
Dim objFSO, oFso
Set objFso = CreateObject("Scripting.FileSystemObject")
i=0
UserHowMuchAdres=-1
if objFso.FileExists(ClientFiles) Then
Set objNetwork = CreateObject("Wscript.Network")
'MsgBox objNetwork.UserName
UserActiv = objNetwork.UserName
Set vStream = objFso.OpenTextFile(ClientFiles, 1, True)
Do Until vStream.AtEndOfStream 'цикл по строкам файла
sLine = vStream.ReadLine
UserSettingsLine = Split(sLine,";")
if UserSettingsLine(0) <> "---" Then
'Производим убираем табуляцию и знаки пробела
UserSettingsLine(0) = replace(UserSettingsLine(0), chr(9), chr(32))
'MsgBox "=" &Trim(LCase(UserSettingsLine(0)))&"="
if Trim(LCase(UserSettingsLine(0))) = LCase(UserActiv) Then
UserHowMuchAdres=i
UserSettingsLogin(i) = Trim(replace(UserSettingsLine(0), chr(9), chr(32)))
UserSettingsAdres(i) = Trim(replace(UserSettingsLine(1), chr(9), chr(32)))
UserSettingsLastName(i) = Trim(replace(UserSettingsLine(2), chr(9), chr(32)))
UserSettingsName(i) = Trim(replace(UserSettingsLine(3), chr(9), chr(32)))
UserSettingsMiddleName(i) = Trim(replace(UserSettingsLine(4), chr(9), chr(32)))
UserSettingsEmail(i) = Trim(replace(UserSettingsLine(5), chr(9), chr(32)))
UserSettingsPhone(i) = Trim(replace(UserSettingsLine(6), chr(9), chr(32)))
UserSettingsTabel(i) = Trim(replace(UserSettingsLine(7), chr(9), chr(32)))
UserSettingsOtdel(i) = Trim(replace(UserSettingsLine(8), chr(9), chr(32)))
UserSettingsDostup(i) = 0
'MsgBox UserSettingsLine(0)
'MsgBox UserSettingsLine(1)
'MsgBox UserSettingsLine(2)
'MsgBox UserSettingsLine(3)
'MsgBox UserSettingsLine(4)
'MsgBox UserSettingsLine(5)
'MsgBox UserSettingsLine(6)
'MsgBox UserSettingsLine(7)
'MsgBox UserSettingsLine(8)
i=i+1
reDim preserve UserSettingsLogin(i)
reDim preserve UserSettingsAdres(i)
reDim preserve UserSettingsLastName(i)
reDim preserve UserSettingsName(i)
reDim preserve UserSettingsMiddleName(i)
reDim preserve UserSettingsEmail(i)
reDim preserve UserSettingsPhone(i)
reDim preserve UserSettingsTabel(i)
reDim preserve UserSettingsOtdel(i)
reDim preserve UserSettingsDostup(i)
End If
Else
Exit Do
End If
Loop
vStream.Close 'закрываем файл
Else
MsgBox "Файл конфигурации пользователя" &ClientFiles &"не найден обратитесь к администратору!"
window.close
End If в частности вот эти строчки:
UserSettingsLogin(i) = Trim(replace(UserSettingsLine(0), chr(9), chr(32)))
UserSettingsAdres(i) = Trim(replace(UserSettingsLine(1), chr(9), chr(32)))
UserSettingsLastName(i) = Trim(replace(UserSettingsLine(2), chr(9), chr(32)))
UserSettingsName(i) = Trim(replace(UserSettingsLine(3), chr(9), chr(32)))
UserSettingsMiddleName(i) = Trim(replace(UserSettingsLine(4), chr(9), chr(32)))
UserSettingsEmail(i) = Trim(replace(UserSettingsLine(5), chr(9), chr(32)))
UserSettingsPhone(i) = Trim(replace(UserSettingsLine(6), chr(9), chr(32)))
UserSettingsTabel(i) = Trim(replace(UserSettingsLine(7), chr(9), chr(32)))
UserSettingsOtdel(i) = Trim(replace(UserSettingsLine(8), chr(9), chr(32)))
