elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Funcion Frag - alternativa a split
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Funcion Frag - alternativa a split  (Leído 4,619 veces)
‭‭‭‭jackl007


Desconectado Desconectado

Mensajes: 1.403


[UserRPL]


Ver Perfil WWW
Funcion Frag - alternativa a split
« en: 26 Abril 2009, 17:33 pm »

Hola!
Hace tiempo tube la necesidad de crear una funcion(cuando aprendia pseudocodigo) para trabajar con datos de registros que sigen un formato, asi que asi nacio esta funcion Frag, por lo cual en ese momento no conocia a split, pero tenia la necesidad de algo como eso...
Ahora acabo de encontrar el documento donde guarde detalles de la funcion el cual habia hecho para compartir con compañeros de estudio, y ahora lo posteo por si le sea util a alguien mas...
La funcion split sirve para lo mismo, pero a veces no es necesario crear un array para acceder a un dado en una posicion en concreto; y mas aun, si es que tienes un documento con muchos registros, entonces es necesario de Frag, que apunta hacia algo en concreto...
A mi me es util en programas que usan sockets para enviar y recibir datos, guardar configuraciones del programa, para registros de usuarios, para archivos de configs, en fin...

usos:


aqui dejo el enlace del documento con su respectiva pequeña ayuda:http://www.tienspiura.com/jackl007/FuncionFrag_vb.pdf

el codigo de la funcion es este:
Código
  1. Public Function Frag(ByVal Cad As String, dLim As String, X As Integer) As String
  2. Dim i, a As Integer
  3. Dim Encontrado As Boolean
  4. For a = 1 To X
  5. i = InStr(1, Cad, dLim)
  6.    If i = 0 Then
  7.        If Encontrado = False Then
  8.            Frag = Cad
  9.            Encontrado = True
  10.        Else
  11.            Frag = "NotFound"
  12.        End If
  13.    Else
  14.        Frag = Mid(Cad, 1, i - 1)
  15.        Cad = Mid(Cad, i + Len(dLim))
  16.    End If
  17. Next a
  18. End Function
  19.  
Hay veces que no es necesario usar frag para cosas simples donde con split lo logras, pero si necesitas datos mas trabajados y rapido, frag te simplifica bastante...


En línea

cobein


Desconectado Desconectado

Mensajes: 759



Ver Perfil WWW
Re: Funcion Frag - alternativa a split
« Respuesta #1 en: 26 Abril 2009, 17:49 pm »

No hay necesidad de usar un array, con split podes simplemente hacer asi

sMyVar = Split(MyText,MyDelim)(Index)


Aca dejo otra mas, funciona practicamente igual que split.
Código:
'---------------------------------------------------------------------------------------
' Procedure : SplitAlter
' DateTime  : 16/09/2008 22:58
' Author    : Cobein
' Mail      : cobein27@yahoo.com
' Purpose   : Complete Split Replacement
'---------------------------------------------------------------------------------------
Private Function SplitAlter(ByVal Expression As String, Optional ByVal Delimiter As String, Optional ByVal Limit As Long = -1) As String()
    Dim lLastPos    As Long
    Dim lIncrement  As Long
    Dim lExpLen     As Long
    Dim lDelimLen   As Long
    Dim lUbound     As Long
    Dim svTemp()    As String
   
    lExpLen = Len(Expression)
   
    If Delimiter = vbNullString Then Delimiter = " "
    lDelimLen = Len(Delimiter)
    If Limit = 0 Then GoTo QuitHere
    If lExpLen = 0 Then GoTo QuitHere
    If InStr(1, Expression, Delimiter, vbBinaryCompare) = 0 Then GoTo QuitHere
   
    ReDim svTemp(0)
    lLastPos = 1
    lIncrement = 1
   
    Do
        If lUbound + 1 = Limit Then
            svTemp(lUbound) = Mid$(Expression, lLastPos)
            Exit Do
        End If
        lIncrement = InStr(lIncrement, Expression, Delimiter, vbBinaryCompare)
        If lIncrement = 0 Then
            If Not lLastPos = lExpLen Then
                svTemp(lUbound) = Mid$(Expression, lLastPos)
            End If
            Exit Do
        End If
        svTemp(lUbound) = Mid$(Expression, lLastPos, lIncrement - lLastPos)
        lUbound = lUbound + 1
        ReDim Preserve svTemp(lUbound)
        lLastPos = lIncrement + lDelimLen
        lIncrement = lLastPos
    Loop
   
    ReDim Preserve svTemp(lUbound)
    SplitAlter = svTemp
   
    Exit Function
   
QuitHere:
    ReDim SplitAlter(-1 To -1)
End Function


En línea

http://www.advancevb.com.ar
Más Argentino que el morcipan
Aguante el Uvita tinto, Tigre, Ford y seba123neo
Karcrack es un capo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[batch] funcion split
Scripting
z_ane_666 1 2,678 Último mensaje 3 Enero 2011, 20:55 pm
por xassiz~
[C]Función SPLIT
Programación C/C++
Binary_Death 7 4,915 Último mensaje 4 Octubre 2011, 17:19 pm
por Binary_Death
¿Ha la funcion Split en VB6 se puede cambiar por otra igual?
Programación Visual Basic
xivan25 4 3,627 Último mensaje 24 Octubre 2011, 20:25 pm
por xivan25
Puedo ofuscar esta la funcion Split asi???
Programación Visual Basic
xivan25 4 2,574 Último mensaje 28 Octubre 2011, 04:06 am
por Elemental Code
[C] Funcion Split
Programación C/C++
mr.blood 6 4,004 Último mensaje 29 Marzo 2013, 10:43 am
por mr.blood
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines