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/