Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

Код:
 
Option Explicit
 
Const cChanNum = 1
Const cChanName = 2
Const cRtuNum = 3
Const cRtuName = 4
Const cStatuses = 5
Const cStatName = 6
Const cStatTMS = 7
Const cStatDelta = 8
Const cTU = 9
Const cStatClass = 10
Const cStatInv = 11
Const cStatLog = 12
Const cAPS = 13
Const cStatGrav = 14
Const cTwoBits = 15
Const cAnalogs = 16
Const cAnalogName = 17
Const cAnalogTMS = 18
Const cAnalogDelta = 19
Const cUnits = 20
 
Sub Main()
    Dim oXML, oRange, aRange
    Set oXML = CreateObject("MSXML2.DomDocument.3.0")
 
    oXML.LoadXML "<?xml version='1.0' encoding='UTF-8'?><InterfaceSSHConfig xmlns:g='urn:1'/>"
 
    Set oRange = Range("A2:T2")
 
    Dim oChannel, oRTU, oStatuses, oAnalogs
    Do
        aRange = oRange.Value
        Select Case False
         
            Case aRange(1, cChanNum) = "":
                Set oChannel = CreateChild(oXML.DocumentElement, "CHANNEL", "")
                oChannel.setAttribute "ChannelNum", aRange(1, cChanNum)
                oChannel.setAttribute "ChannelName", aRange(1, cChanName)
                 
            Case aRange(1, cRtuNum) = "":
                Set oRTU = CreateChild(oChannel, "RTU", "")
                oRTU.setAttribute "RTUName", aRange(1, cRtuName)
                oRTU.setAttribute "RtuNum", aRange(1, cRtuNum)
                 
            Case aRange(1, cStatuses) = "":
                Set oStatuses = CreateChild(oRTU, "STATUSES", "")
                oStatuses.setAttribute "StaDesc", aRange(1, cStatuses)
                 
            Case aRange(1, cStatTMS) = "":
                With CreateChild(oStatuses, "STATUS", "")
                    .setAttribute "StatusPoint", aRange(1, cStatTMS)
                    .setAttribute "StatusName", aRange(1, cStatName)
                    If aRange(1, cStatClass) <> "" Then .setAttribute "StatusClass", aRange(1, cStatClass)
                    If aRange(1, cStatInv) <> "" Then .setAttribute "StatusInvert", "+ (да)"
                    If aRange(1, cStatLog) <> "" Then .setAttribute "StatusRetro", "- (нет)"
                    If aRange(1, cAPS) <> "" Then .setAttribute "StatusSignal", "+ (аварийно-предупредительный)"
                    Select Case aRange(1, cStatGrav)
                        Case 1:
                        Case 2: .setAttribute "StatusImp", "2 (сигнал)"
                        Case 3: .setAttribute "StatusImp", "3 (сирена)"
                        Case Else: .setAttribute "StatusImp", "0 (не записывать)"
                    End Select
                End With
                 
            Case aRange(1, cAnalogs) = "":
                Set oAnalogs = CreateChild(oRTU, "ANALOGS", "")
                oAnalogs.setAttribute "AnaDesc", aRange(1, cAnalogs)
                 
            Case aRange(1, cAnalogTMS) = "":
                With CreateChild(oAnalogs, "ANALOG", "")
                    .setAttribute "AnalogPoint", aRange(1, cAnalogTMS)
                    .setAttribute "AnalogName", aRange(1, cAnalogName)
                    .setAttribute "AnalogUnits", aRange(1, cUnits)
                End With
            Case Else: Exit Do
        End Select
 
        Set oRange = oRange.Offset(1, 0)
    Loop
    oXML.Save "result.xml"
 
End Sub
 
 
Function CreateChild(oParent, vCode, vValue)
    Dim oTMP, oNameSpace
    Set oTMP = oParent.OwnerDocument.createElement(vCode)
    If vValue <> "" Then oTMP.Text = vValue
    oParent.appendChild oTMP
    Set CreateChild = oTMP
    Set oTMP = Nothing
End Function
 

Всего записей: 1891 | Зарегистр. 07-08-2002 | Отправлено: 08:48 23-11-2018
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование "удобняшек" на VBScript (Часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru