Página 1 de 1

Lsplit (Split para Linux Gambas y alternativa VB6) By Linkgl

Publicado: 25 Dic 2009, 19:46
por linkgl
En gambas la funcion Split() no es como en vb6 en gambas no puedes reemplazar una cadena completa solo puedes reemplazar caracteres y eso cualquiera que programe malware no le sirve de nada, por eso me invente esta funcion llamda Lsplit

Codigo:

Código: Seleccionar todo

' Gambas class file
'*****************************************************
'*****************************************************
'** Autor    : Linkgl                               **
'** Version  : 1.0                                  **
'** Funcion  : Lsplit()                             **
'** Email    : [email protected]           **
'** Web      : www.Indetectables.net                **
'*****************************************************
'*****************************************************

'array con el numero de firmas que tiene nuestra string iniciando de 0
PUBLIC a1 AS String[3]

'declaramos la funcion
PUBLIC FUNCTION Lsplit(palabra AS String, limitador AS String, firmas AS Integer)
  'buffer actua de almacen
  DIM buffer AS String
  'sp actua como el numero en la posicion en que se encuentra determinado caracter
  DIM sp AS Integer
  'i es usado en el bucle
  DIM i AS Integer
  
  'indicamos a buffer que almacene la palabra
  buffer = palabra
  'iniciamos el bucle hasta el numero de firmas que vamos a cortar
  FOR i = 0 TO firmas
  'extraemos la posicion del primer limitador de derecha a izquierda
    sp = RInStr(buffer, limitador)
  'sumamos la cantidad de caracteres que tiene el limitador para eliminarlas
    sp = sp + Len(limitador)
  'separamos el buffer o la palabra de la firma
    a1[i] = Mid$(buffer, sp)
  'reemplazamos la cadena por nada para ir reduciendola
    buffer = Replace(buffer, limitador & a1[i], "")
  'repetimos las acciones hasta que no haya mas firmas
  NEXT
'la ultima firma la extraemos
  a1[firmas] = buffer
END
Modo de uso:
La funcion Lsplit tiene tres parametros 1 la frase entera, 2 la palabra a cortar 3 el numero de veces que se encuentra la palabra a cortar iniciando por el 0 la funcion devuelve un array inverso, un ejemplo:

Código: Seleccionar todo

' Gambas class file
'*****************************************************
'*****************************************************
'** Autor    : Linkgl                               **
'** Version  : 1.0                                  **
'** Funcion  : Lsplit()                             **
'** Email    : [email protected]           **
'** Web      : www.Indetectables.net                **
'*****************************************************
'*****************************************************

PUBLIC a1 AS String[2]


PUBLIC SUB Button1_Click()

 Lsplit("hola#LINK#como#LINK#estas", "#LINK#", 2)
 message(a1[2])
END

PUBLIC FUNCTION Lsplit(palabra AS String, limitador AS String, firmas AS Integer)
  DIM buffer AS String
  DIM sp AS Integer
  DIM i AS Integer
  
  
  buffer = palabra
  FOR i = 0 TO firmas
    sp = RInStr(buffer, limitador)
    sp = sp + Len(limitador)
    a1[i] = Mid$(buffer, sp)
    buffer = Replace(buffer, limitador & a1[i], "")
  NEXT
  a1[firmas] = buffer
END
Explicacion: a1 es un array que debe quedar como variable GLOBAL, para adaptar a visual basic debe ponerse en option explicit esa unica variable, el numero del array de a1 debe ser el numero de veces que se repite la firma si yo tengo #LINK# 3 veces contando desde 0 serian 2 (0, 1, 2) entonces a1 es a1[2] y como es inversa message(a1[2]) contiene hola
message(a1[1]) contiene como
message(a1[0]) contiene estas

DUDAS PREGUNTEN, el codigo es FACILISIMO adaptarlo a vb6 por eso no lo explicaré ademas de que en vb6 es inutil existiendo ya la funcion split() pero puede usarse por si un av detecta split reemplazas por Lsplit para que se vaya el av

Re: Lsplit (Split para Linux Gambas y alternativa VB6) By Linkgl

Publicado: 26 Dic 2009, 16:40
por DARK_J4V13R
Muy buen trabajo linkgl

Saludos

Re: Lsplit (Split para Linux Gambas y alternativa VB6) By Linkgl

Publicado: 30 Dic 2009, 05:17
por linkgl
gracias bro, estamos para ayudar xD

Re: Lsplit (Split para Linux Gambas y alternativa VB6) By Linkgl

Publicado: 03 Ene 2010, 12:25
por LuisN2
Gambas!? eso que es? Algo de linux?

De todos modos buen trabajo (Como siempre)

Saludos

Re: Lsplit (Split para Linux Gambas y alternativa VB6) By Linkgl

Publicado: 03 Ene 2010, 16:31
por wh0!
Gambas es un entorno de programación parecido al Basic, tanto en su estetica como el código.

Re: Lsplit (Split para Linux Gambas y alternativa VB6) By Linkgl

Publicado: 03 Ene 2010, 18:21
por linkgl
LuisN2 escribió:Gambas!? eso que es? Algo de linux?

De todos modos buen trabajo (Como siempre)

Saludos
Este lenguaje fue creado para imitar a visual basic en linux, para que los programadores visual basic no tuviesen problemas al mudarse a linux, el problema es que no genera binarios reales pero puedes generar un instalador que te corre el programa y te lo convierte a binario real salu2.

Y sí es parecido a basic en codigo como en la interfaz, pero segun tengo entendido su base no es basic como vb6.