Equivalente de Left y Right

21/02/2006 - 18:24 por Asier | Informe spam
Hola,

Sin tener que incluir el espacio de nombres de visualBasic, cmo pudo
conseguir el efecto de VB6 que me dan las funciones left y right.

Gracias,

Asier
 

Leer las respuestas

#1 Patxi Sanz
21/02/2006 - 19:43 | Informe spam
Hola Asier:

Siempre puedes crearte tus propias funciones para hacer lo mismo. Por
ejemplo, las siguientes funciones simulan a Left (Izquierda) y
Right(Derecha):

Module Module1

Function Derecha(ByVal str As String, ByVal lon As Integer) As String

Dim c As Char()

Dim c2 As Char

Dim s As String = ""

If String.IsNullOrEmpty(str) Then

Return ""

ElseIf lon <= 0 Then

Return ""

ElseIf lon >= str.Length Then

Return str

Else

ReDim c(lon - 1)

str.CopyTo(str.Length - lon, c, 0, lon)

For Each c2 In c

s = s & c2.ToString

Next

Return s

End If

End Function

Function Izquierda(ByVal str As String, ByVal lon As Integer) As String

Dim c As Char()

Dim c2 As Char

Dim s As String = ""

If String.IsNullOrEmpty(str) Then

Return ""

ElseIf lon <= 0 Then

Return ""

ElseIf lon >= str.Length Then

Return str

Else

ReDim c(lon - 1)

str.CopyTo(0, c, 0, lon)

For Each c2 In c

s = s & c2.ToString

Next

Return s

End If

End Function

Sub Main()

Dim s As String

Console.WriteLine("Con una cadena nula...")

Console.WriteLine()

Console.WriteLine("Izquierda(s, 8) da como resultado <{0}>", Izquierda(s,
8))

Console.WriteLine()

Console.WriteLine("Derecha(s, 8) da como resultado: <{0}>", Derecha(s, 8))

Console.WriteLine()

s = "Patxi se fue de juerga el viernes por la noche"

Console.WriteLine("Con la frase: {0} ...", s)

Console.WriteLine()

Console.WriteLine("Izquierda(s, 8) da como resultado <{0}>", Izquierda(s,
8))

Console.WriteLine("Izquierda(s, 0) da como resultado <{0}>", Izquierda(s,
0))

Console.WriteLine("Izquierda(s, 50) da como resultado <{0}>", Izquierda(s,
50))

Console.WriteLine()

Console.WriteLine("Derecha(s, 8) da como resultado: <{0}>", Derecha(s, 8))

Console.WriteLine("Derecha(s, 0) da como resultado: <{0}>", Derecha(s, 0))

Console.WriteLine("Derecha(s, 50) da como resultado: <{0}>", Derecha(s, 50))

Console.ReadLine()

End Sub

End Module

Un saludo,


Patxi Sanz
patxisanz[ARROBA]yahoo[PUNTO]es
Tudela (NA)

Preguntas similares