Link to home
Start Free TrialLog in
Avatar of harishsc
harishsc

asked on

Some explanation on the code

Can somebody please explain to me what does the below code do?

Class StringClass

 

            'Global Variables

            Private m_array

            Private m_length

            Private m_buffer

            Private m_growthSize

 

            'Constructor (sort of)

            Private Sub Class_Initialize

                        m_array = Array()

                        m_length = 0

                        m_buffer = 0

                        m_growthSize = 32'Dynamically grows inside Append()

            End Sub

 

            'Public Methods

            Public Function Append(ByVal value)

                        Dim ValueLen: ValueLen = Len(value)

                        Do While ValueLen > m_buffer

                                    ReDim Preserve m_array(UBound(m_array) + m_growthSize)

                                    m_buffer = m_buffer + m_growthSize

                                    m_growthSize = m_growthSize * 2

                        Loop

 

                        For i = 0 To ValueLen - 1

                                    m_array(m_length) = Mid(value, i + 1, 1)

                                    m_length = m_length + 1

                                    m_buffer = m_buffer - 1

                        Next

            End Function

 

            'Properties

            Public Property Get Length

                        Length = m_length

            End Property

 

            Public Property Get Text

                        Text = Join(m_array, "")

            End Property

            Public Property Let Text(ByVal value)

                        'Reset the array without reducing the current capacity.

                        m_array = Array(m_length + m_buffer - 1)

                        m_buffer = m_length + m_buffer

                        m_length = 0

                        Append(value)

            End Property

 

End Class

Thanks
Harish
ASKER CERTIFIED SOLUTION
Avatar of Mike Tomlinson
Mike Tomlinson
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of harishsc
harishsc

ASKER

Thanks for the response, my problem is, we have been asked to use better tricks for manipulating strings, the below code is asked to use the Class that I posted earlier in my question for string manipulation. Does anybody has any suggestions, I am posting the existing code below.

<%
With o_Rec
      Do while not .EOF
            strShopper = .Fields("community_name").Value
            if IsNull(strShopper) then ''Try using IsNull Here and see if its appropriate
                  if not bolDictExists(o_DiscDict,strShopper) then
                        Set o_DiscDict(strShopper) = Server.CreateObject("Commerce.Dictionary")
                  end if
                  Set objShopperDiscounts = o_DiscDict(strShopper)

                  str_SKU = .Fields("sku").Value
                  if not bolDictExists(objShopperDiscounts,str_SKU) then
                        Set objShopperDiscounts(str_SKU) = Server.CreateObject("Commerce.Dictionary")
                  end if
                  Set objSkuDiscount = objShopperDiscounts(str_SKU)
                  objSkuDiscount("disc_type")  = trim(.Fields("discount_type").Value)
                  objSkuDiscount("disc_value") = trim(.Fields("discount_value").Value)
                  objSkuDiscount("Local_FixedPrice") =trim( .Fields("local_fixed_amount").Value)
                  objSkuDiscount("USD_FixedPrice") = trim(.Fields("fixed_amount").Value)
            End if
            .MoveNext
      Loop
End With
%>
I don't see how the StringClass applies to your current code...
@harishsc : I dont think you can really change much about your code as far as the strings go.