Crear Funcion Split en vb6
Publicado: 20 Jun 2013, 05:03
Algun compañero me puede pasa una funcion para crear una Split pero no la funcion que ya trae visual basic si no una funcion como las hay en Delphi
Indetectables es una Comunidad de Hacking, Seguridad Informática, Impresión 3d y Desarrollo
./index.php
'Split() Alternative function
'Coded By hamavb
'MSVBVM60.rtcSplit
'MSVBVM60.__vbaAryCopy
Public Type WeirdType
e1 As Long
e2 As Long
e3 As Long
e4 As Long
End Type
Public Declare Function rtcSplit Lib "MSVBVM60" (ByRef aa As WeirdType, ByVal ExpressionPtr As Long, ByRef sep As Variant, ByVal zz As Long, ByVal zzz As Long) As Long
Public Declare Function vbaAryCopy Lib "MSVBVM60" Alias "__vbaAryCopy" (ByRef lType() As String, ByVal aa As Long) As Long
Public Function Alternative_Split(ByVal Exp As String, ByVal sep As Variant, Optional ByVal Limit As Integer = -1, Optional ByVal Compare As VbCompareMethod = vbBinaryCompare) As Variant
Dim aa As WeirdType
Dim f() As String
rtcSplit aa, StrPtr(Exp), sep, Limit, Compare
vbaAryCopy f, VarPtr(aa.e3)
For i = LBound(f) To UBound(f)
f(i) = StrConv(f(i), vbFromUnicode)
Next i
Alternative_Split = f
End Function
Saludos. 'Autor: Metal_Kingdom
'Lenguaje: VB6
'Web: udtools.net
'Fecha: 30-11-2011
'Finalidad: Separar datos de cadena.
'Añadido soporte de 2º delimitador opcional.
Function sSplit(cadena As String, delimitador As String, Optional delimitador2 As String) As String
Dim a As String, b As String, c As Long, d As Long
c = InStr(1, cadena, delimitador) + Len(delimitador)
a = Mid(cadena, c, Len(cadena))
b = StrReverse(a)
d = InStr(1, b, StrReverse(delimitador2)) + Len(delimitador2)
b = StrReverse(Mid(b, d, Len(b)))
If Not delimitador2 <> "" Then
sSplit = a
Else
sSplit = b
End If
End Function
'Uso con un delimitador:
MsgBox sSplit("zorrrrrrrrrrrraaaaaaaaahola puta bastarda de mierda hola puta zorra, basura", "puta bastarda")
'Devuelve " de mierda hola puta zorra, basura".
'Uso con dos delimitadores:
MsgBox sSplit("zorrrrrrrrrrrraaaaaaaaahola puta bastarda de mierda hola puta zorra, basura", "puta bastarda", "puta zorra")
'Devuelve " de mierda hola "
Saludos public string sSplit(string texto, string delimitador1, string delimitador2)
{
string final = "";
int posicion1 = texto.IndexOf(delimitador1);
int posicion2 = texto.IndexOf(delimitador2);
int tamano = posicion2 + delimitador2.Length;
if (delimitador2 != "")
{
final = texto.Substring(posicion1 + delimitador1.Length, tamano - (posicion1 + delimitador1.Length + delimitador2.Length));
}
else
{
final = texto.Substring(posicion1 + delimitador1.Length,texto.Length - (posicion1 + delimitador1.Length));
}
return final;
}
uso:
string texto = "HolaComoTeVa?";
sSplit(texto, "Como",""); -------------> = TeVa?
sSplit(texto, "","Como"); -------------> = Hola
sSplit(texto, "Hola","TeVa?"); -------------> = Como
Salud!