Bhupendra

Not the best or most elegant.net function I've ever written, but this might
get you on the way.. Don't know if I've ever used it so you might want to
test it first :)

Should be self-explanatory anyway.

Brian

-------------------------------| copy here
|---------------------------------
Public Shared Function Locate(ByVal Text As String, ByVal DA As String,
ByVal Mask As String, ByRef Pos As Integer) As Boolean
        Dim Delim As String = ""
        Dim Ix As Integer, I As Integer, Temp As String
        Dim D As Double, D1 As Double
        Dim Numeric As Boolean = False
        Dim Descending As Boolean = False
        Dim Found As Boolean = False
        Dim L As Integer

        If DA = "" Then
            Pos = 1
            Return False
        End If

        ' Always set to the highest available delimiter
        If DA.IndexOf(FM) > 0 Then
            Delim = FM()
        ElseIf DA.IndexOf(VM) > 0 Then
            Delim = VM()
        Else
            Delim = SM()
        End If

        Numeric = (Mask.ToUpper.IndexOf("R") > 0)
        Descending = (Mask.ToUpper.IndexOf("D") > 0)

        If Numeric Then D1 = SafeDouble(Text)

        Ix = 0
        I = 0
        L = DA.Length
        While Ix < L
            I += 1
            Temp = NextField(DA, Ix, Delim)
            If Temp = Text Then
                Pos = I
                Return True
            End If
            If Mask <> "" Then
                If Numeric Then
                    D = SafeDouble(Temp)
                    If Descending Then
                        If D <= D1 Then
                            Pos = I
                            Return False
                        End If
                    Else
                        If D >= D1 Then
                            Pos = I
                            Return False
                        End If
                    End If
                Else
                    If Descending Then
                        If Temp <= Text Then
                            Pos = I
                            Return False
                        End If
                    Else
                        If Temp >= Text Then
                            Pos = I
                            Return False
                        End If
                    End If
                End If
            End If

        End While
        If Mask <> "" Then
            Pos = I
        End If
        Return False
   End Function

 Public Shared Function NextField(ByVal Text As String, ByRef Ix As Integer,
ByVal Delim As String) As String
        Dim NIx As Integer
        Dim T As String

        If Ix > Text.Length Then
            Return Nothing
        End If
        
        NIx = Text.IndexOf(Delim, Ix)
        If NIx < 0 Then
            T = Text.Substring(Ix)
            Ix = Text.Length + 1
        Else
            T = Text.Substring(Ix, NIx - Ix)
            Ix = NIx + Delim.Length
        End If
        Return T
    End Function

Public Shared Function FM() As String
        Return Chr(254)
    End Function
    Public Shared Function VM() As String
        Return Chr(253)
    End Function
    Public Shared Function SM() As String
        Return Chr(252)
    End Function

Public Shared Function SafeDouble(ByVal Text As String) As Double
        Dim ADouble As Double
        If Text = "" Then
            Return 0
        End If
        Try
            ADouble = Double.Parse(Text)
        Catch ex As Exception
            Return 0
        End Try
        Return ADouble
    End Function
----------------------------------------------------------------------------
---- 
That's all folks

> -----Original Message-----
> From: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] On Behalf Of 
> Bhupendra Jamnadas
> Sent: 31 May 2006 15:38
> To: [email protected]
> Subject: [U2] Implementing LOCATE function in .NET
> 
> Hi,
> 
> I have a problem wherein I need to implement the 
> functionality of LOCATE function with it's 
> "AR"/"AL"/"DR"/"DL" sequence in .NET. Creating a Universe 
> program or subroutine and using this method therein is not an 
> option. Is there any way to call BASIC functions from 
> UODOTNET or has someone tried to implement this function in .NET?
> 
> Thanks,
> Bhupendra.
> -------
> u2-users mailing list
> [email protected]
> To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to