<%
Dim MARKUP_START_TAG
Dim MARKUP_END_TAG
Dim MARKUP_END
Dim ATTRIBUTE_NAME_START_PREFIX
Dim ATTRIBUTE_NAME_END_PREFIX
Dim ATTRIBUTE_NAME_START_POSTFIX
Dim ATTRIBUTE_NAME_END_POSTFIX
' Dim NULL
Dim DV_BROWSER
Dim DV_FILED
Dim NEWLINE
' NULL = 0
DV_BROWSER = 1
DV_FILE = 2
NEWLINE = vbCrLf
MARKUP_START_TAG = "" '"<"
MARKUP_END_TAG = "" '">"
MARKUP_END = "" '"/"
ATTRIBUTE_NAME_START_PREFIX = ""
ATTRIBUTE_NAME_END_PREFIX = ""
ATTRIBUTE_NAME_START_POSTFIX = "Begin"
ATTRIBUTE_NAME_END_POSTFIX = "End"
Function ArrayAppendVariable(Dest, var)
If Not IsArray(Dest) Then Dest = Array()
Redim Preserve Dest(UBound(Dest) + 1)
Dest(UBound(Dest)) = Obj
End Function
Function ArrayAppendObject(Dest, Obj)
If Not IsArray(Dest) Then Dest = Array()
Redim Preserve Dest(UBound(Dest) + 1)
Set Dest(UBound(Dest)) = Obj
End Function
Class cNameValuePair
Public Name
Public Value
Public Function ToString()
If Name = "" Then
ToString = Value
Else
ToString = Name & "=" & Value
End If
End Function
End Class
Class cNameValuePairList
Public List
Public Function Add(Name, Value)
Dim Temp
Set Temp = New cNameValuePair
Temp.Name = Name
Temp.Value = Value
ArrayAppendObject List, Temp
End Function
Public Function GetValueFromName(Name)
Dim I
Dim Result
Result = NULL
If IsArray(List) And Name <> "" Then
For I = LBound(List) To UBound(List)
If List(I).Name = Needle Then Result = List(I).Value
Next
End If
InNameValueArray = Result
End Function
Public Function GetIndexFromName(Name)
Dim I
Dim Result
Result = -1
If IsArray(List) And Name <> "" Then
For I = LBound(List) To UBound(List)
If List(I).Name = Name Then Result = I
Next
End If
GetIndexFromName = Result
End Function
Public Function RawPut(Name, Value)
Dim Index
Index = GetIndexFromName(Name)
If Index > -1 Then
List(Index).Value = Value
Else
Add Name, Value
End If
End Function
Public Function Put(NameValue)
RawPut NameValue.Name, NameValue.Value
End Function
Public Function ToString()
Dim Result
Result = ""
If IsArray(List) Then
Dim I
For I = LBound(List) To UBound(List)
Result = Result & List(I).ToString() & " "
Next
End If
ToString = Result
End Function
Private Function NameValuePairFromString(RawString)
Dim Result
Set Result = New cNameValuePair
If InStr(RawString, "=") Then
Dim Temp
Temp = Split(RawString, "=")
Result.Name = Temp(0)
Result.Value = Temp(1)
Else
Result.Name = ""
Result.Value = RawString
End If
Set NameValuePairFromString = Result
End Function
Public Function FromString(Src)
Dim RawDataArray
RawDataArray = Split(Trim(Src), " ")
If IsArray(RawDataArray) Then
Dim I
For I = LBound(RawDataArray) To UBound(RawDataArray)
Put NameValuePairFromString(RawDataArray(I))
Next
End If
End Function
End Class
Function CreateParm(Name, Value)
Dim Result
Set Result = New cNameValuePair
Result.Name = Name
Result.Value = Value
Set CreateParm = Result
End Function
Function InNameValueArray(Haystack, Needle)
Dim I
Dim Result
Result = -1
If IsArray(Haystack) And Needle <> "" Then
For I = LBound(Haystack) To UBound(Haystack)
If Haystack(I).Name = Needle Then Result = I
Next
End If
InNameValueArray = Result
End Function
Function NameValueArrayToString(Src)
Dim Result
Result = ""
If IsArray(Src) Then
Dim I
For I = LBound(Src) To UBound(Src)
Result = Result & Src(I).ToString() & " "
Next
End If
NameValueArrayToString = Result
End Function
Class cMarkupElement
'Recursive elements
Public Children
Public Parent
Public ElementName
Public Variables
Public Function Constructor ()
Response.Write "Testing Constructor"
End Function
Public Function Create(ElementName)
Set Me.Variables = New cNameValuePairList
Me.ElementName = ElementName
End Function
Public Function ToString(Device)
If Device = NULL Then NL = ""
If Device = DV_BROWSER Then
NL = "<br />"
If MARKUP_START_TAG = "<" And MARKUP_END_TAG = ">" Then
MARKUP_START_TAG = "<"
MARKUP_END_TAG = ">"
End If
End If
If Device = DV_FILE Then NL = NEWLINE
If IsArray(Children) Then
Dim Childs
Childs = ""
Dim I
For I = LBound(Children) To UBound(Children)
If Device = DV_BROWSER And MARKUP_START_TAG = "<" And MARKUP_END_TAG = ">" Then
MARKUP_START_TAG = "<"
MARKUP_END_TAG = ">"
End If
Childs = Childs & Children(I).ToString(Device)
If MARKUP_START_TAG = "<" And MARKUP_END_TAG = ">" Then
MARKUP_START_TAG = "<"
MARKUP_END_TAG = ">"
End If
Next
ToString = MARKUP_START_TAG & ATTRIBUTE_NAME_START_PREFIX & ElementName & ATTRIBUTE_NAME_START_POSTFIX & " " & Variables.ToString() & MARKUP_END_TAG & NL & Childs & MARKUP_START_TAG & MARKUP_END & ATTRIBUTE_NAME_END_PREFIX & ElementName & ATTRIBUTE_NAME_END_POSTFIX & MARKUP_END_TAG & NL
Else
ToString = MARKUP_START_TAG & ElementName & " " & Variables.ToString() & MARKUP_END & MARKUP_END_TAG & NL
End If
If Device = DV_BROWSER And MARKUP_START_TAG = "<" And MARKUP_END_TAG = ">" Then
MARKUP_START_TAG = "<"
MARKUP_END_TAG = ">"
End If
End Function
Public Function SetParm(Parm)
Variables.Put Parm
End Function
Public Function GetParm(Name)
GetParm = Variables.GetFromName(Name)
End Function
Public Function AppendChild(Element)
Set Element.Parent = Me
ArrayAppendObject Children, Element
End Function
Public Function SaveToFile(Filename)
Set objFile = Server.CreateObject("Scripting.FileSystemObject")
If objFile.FileExists(Filename) Then objFile.DeleteFile Filename, True
Set objStream = objFile.CreateTextFile(Filename, True, False)
On Error Resume Next
objStream.WriteLine ToString(DV_FILE)
objStream.Close
End Function
Public Function GetFirstChild()
If IsArray(Children) Then Set GetFirstChild = Children(0) Else Set GetFirstChild = Nothing
End Function
End Class
%>