Función aInstr
Publicado: 22 Abr 2011, 00:27
Esta es una buena alternativa a la función tradicional InStr de VB.
Modo de Uso:
La función InStr de VB sirve para encontrar la posición de una palabra en un texto muy grande. También puedes indicar en cual posición se debe comenzar y es tan útil como la función Mid. Y su utilidad más frecuente es con textos.
Subirimagenes.com

ImageShack.us

También tiene distintos métodos de comparación...Pero llevando a la práctica esta función: Notepad es un buen ejemplo, ya que esta función es la utilizada para buscar las palabras dentro del texto. Copia un gran texto en el notepad, busca una palabra que se encuentre en el texto y verás que la palabra es encontrada porque ya se conoce la posición exacta de esta en el texto.
También te puede ayudar a separar o identificar...Un ejemplo sería un Anti-Noob para la pass de las herramientas.
En un scaner creado en VB6...Necesitas obtener la firma que se encontró y sin esta función sería algo complicado. Pero aquí existen algunos problemas ya que no todos los AV muestran su reporte con una secuencia idéntica, o sea son diferentes y no siempre el archivo está infectado.
Estás son algunas ideas para la práctica...Y la razón de crear funciones iguales a las originales es para de esta forma tener control de estas. Por ejemplo, la función InStr tradicional y esta que publiqué sólo muestran la posición de la primera palabra que encuentran. Imagina que en el texto a buscar la palabra tengo 5 veces la misma palabra.
Esta es mi función algo modificada...Ahora encontrará las posiciones de todas las palabras que coincidan con la palabra a buscar. Y cómo vez ahí, mostrará un Msgbox o un mensaje cada vez que encuentre la misma palabra. Pero si quisiera la modificaría un poco más para que no mostrara un Msgbox, sino que guardara las posiciones en una String:
Y también podría hacer que mostrara solamente la última coincidencia...
Cómo vez puedo manipular esta función para que se adapte a mi código o source del programa y no como la función tradicional, con la que tendrías que adaptar el código a la función.
[Enlace externo eliminado para invitados]
Saludos.
Código: Seleccionar todo
Public Function aInStr(A As Long, B As String, C As String) As Long
On Error Resume Next
'========================================================'
' AX: aInStr '
' Uso: Call aInStr(Inicio, Cadena 1, Cadena 2) '
' '
'========================================================'
Dim F As String
Dim G As String
Dim H As String
Dim X As Long
H = Right(B, Len(B) - 1)
For X = A To Len(B)
F = Mid(H, X - 1, Len(C))
If F = C Then aInStr = X: GoTo Z
Next X
Z:
End Function
Código: Seleccionar todo
Call aInStr(Inicio, Cadena 1, Cadena 2)
Código: Seleccionar todo
http://www.recursosvisualbasic.com.ar/htm/tutoriales/tutorial-basico5.htm#instr
Subirimagenes.com

ImageShack.us

También tiene distintos métodos de comparación...Pero llevando a la práctica esta función: Notepad es un buen ejemplo, ya que esta función es la utilizada para buscar las palabras dentro del texto. Copia un gran texto en el notepad, busca una palabra que se encuentre en el texto y verás que la palabra es encontrada porque ya se conoce la posición exacta de esta en el texto.
También te puede ayudar a separar o identificar...Un ejemplo sería un Anti-Noob para la pass de las herramientas.
En un scaner creado en VB6...Necesitas obtener la firma que se encontró y sin esta función sería algo complicado. Pero aquí existen algunos problemas ya que no todos los AV muestran su reporte con una secuencia idéntica, o sea son diferentes y no siempre el archivo está infectado.
Estás son algunas ideas para la práctica...Y la razón de crear funciones iguales a las originales es para de esta forma tener control de estas. Por ejemplo, la función InStr tradicional y esta que publiqué sólo muestran la posición de la primera palabra que encuentran. Imagina que en el texto a buscar la palabra tengo 5 veces la misma palabra.
Código: Seleccionar todo
Public Function aInStr(A As Long, B As String, C As String) As Long
On Error Resume Next
'========================================================'
' AX: aInStr '
' Uso: Call aInStr(Inicio, Cadena 1, Cadena 2) '
' www.Indetectables.net '
'========================================================'
Dim F As String
Dim G As String
Dim H As String
Dim X As Long
H = Right(B, Len(B) - 1)
For X = A To Len(B)
F = Mid(H, X - 1, Len(C))
If F = C Then MsgBox X
Next X
End Function
Código: Seleccionar todo
Public Function aInStr(A As Long, B As String, C As String) As Variant
On Error Resume Next
'========================================================'
' AX: aInStr '
' Uso: Call aInStr(Inicio, Cadena 1, Cadena 2) '
' www.Indetectables.net '
'========================================================'
Dim F As String
Dim G As String
Dim H As String
Dim X As Long
H = Right(B, Len(B) - 1)
For X = A To Len(B)
F = Mid(H, X - 1, Len(C))
If F = C Then aInStr = aInStr & X & " "
Next X
End Function
Código: Seleccionar todo
Public Function aInStr(A As Long, B As String, C As String) As Long
On Error Resume Next
'========================================================'
' AX: aInStr '
' Uso: Call aInStr(Inicio, Cadena 1, Cadena 2) '
' www.Indetectables.net '
'========================================================'
Dim F As String
Dim G As String
Dim H As String
Dim X As Long
H = Right(B, Len(B) - 1)
For X = A To Len(B)
F = Mid(H, X - 1, Len(C))
If F = C Then aInStr = X
Next X
End Function
[Enlace externo eliminado para invitados]
Saludos.