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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Identificar una cadena de texto en un archivo.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Identificar una cadena de texto en un archivo.  (Leído 3,959 veces)
Impersecuto


Desconectado Desconectado

Mensajes: 340


No es ni lo uno ni lo otro sino todo lo contrario.


Ver Perfil
Identificar una cadena de texto en un archivo.
« en: 3 Abril 2007, 19:41 pm »

Hola,

Estoy viendo la posibilidad de una pequeña aplicación que pueda leer el texto de un archivo y encontrar una cadena de texto especifica sin importar en que lugar se encuentra.

Mi idea es que una vez la haya encontrado pueda cargar en una variable un número determinado de caracteres a partir de la ubicación de la cadena en el archivo.

Me imagino que será posible, pero no logro dar con la forma.

Haber si alguien me pudiera ayudar por favor.

Muchisimas gracias.

Impersecuto.


En línea

Impersecuto de Chile

"Porque no tenemos nada queremos hacerlo todo"
karmany
Colaborador
***
Desconectado Desconectado

Mensajes: 1.615


Sueñas que sueñas


Ver Perfil WWW
Re: Identificar una cadena de texto en un archivo.
« Respuesta #1 en: 3 Abril 2007, 23:00 pm »

Esta función te vendrá de perlas:
http://msdn2.microsoft.com/es-es/library/8460tsh1(VS.80).aspx

El archivo lo puedes abrir en modo binario e ir cogiendo por ej. (lo primero que se me ha ocurrido) string*255 y comparar con la función anterior.


En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: Identificar una cadena de texto en un archivo.
« Respuesta #2 en: 4 Abril 2007, 01:36 am »

A mi, por lo q pides se me ocurre esto:

Código:
Private Sub Command1_Click()
Dim cadena As String

cadena = "Esto es el primer trozo de cadena esta la cadena a buscar y finalmente el trozo q nos interesa"

final = Split(cadena, "esta la cadena a buscar")
MsgBox final(1)
End Sub

Eso te devuelve el trozo de una cadena a partir de otra subcadena. Si kierescargar solo 2 caracteres por ejemplo usa left ;)

1S4ludo
En línea

Tengu


Desconectado Desconectado

Mensajes: 330


2+1 = 1 , despues de todo , tdo es relativo


Ver Perfil WWW
Re: Identificar una cadena de texto en un archivo.
« Respuesta #3 en: 25 Julio 2007, 23:02 pm »

esta funcion es la q utilixan los buscadores como el del notepad:

Código:
:::::::::::::::::::::::::::::::::::code::::::::::::::::::::::::::::::::::::::::



Private Sub Command1_Click()
    If N <> 0 Then
        N = Busca_Boyer_Moore(txtBusq.Text, txtTodo.Text, (N + Len(txtBusq.Text) + 1))
    Else
        N = Busca_Boyer_Moore(txtBusq.Text, txtTodo.Text, 1)
    End If
    If N <> 0 Then
        txtTodo.SetFocus
        txtTodo.SelStart = N
        txtTodo.SelLength = Len(txtBusq.Text)
        Label2.Caption = "Se encontro"
Timer1.Enabled = True
    Else
        Label2.Caption = "No se encontro"
    End If
End Sub

Function Busca_Boyer_Moore(CadenaBuscar As String, CadenaBuscarEn As String, Optional Inicio As Double = 1) As Double
Dim X As Integer
Dim Y As Integer
Dim intPoscLC As Double
Dim intPoscFin As Double
Dim intLenCadBus As Double
Dim intLenCadBusE As Double
Dim strCaracter() As String
Dim blnMatch As Boolean

    'Iniciamos las variables
   
    'Determina el Caracter de arranque o la ultima coincidencia encontrada
    intPoscLC = Inicio
    'Es de donde inciaremos si no coincide la cadena
    intPoscFin = Inicio
    'Determina si se encontro o no.
    blnMatch = False
   
    'Longitud de la cadena a buscar
    intLenCadBus = Len(CadenaBuscar)
    'Longitud de la cadena en la que se buscara
    intLenCadBusE = Len(CadenaBuscarEn)

    'Redimensionamos la variable para almacenar cada caracter de la cadena a buscar
    ReDim strCaracter(intLenCadBus) As String
    'Asignamos cada caracter a la variable que redimensionamos
    For X = 1 To intLenCadBus
        strCaracter(X) = Mid(CadenaBuscar, X, 1)
    Next X
    'Hasta que no se cumpla la condición de que se encontro la cadena hacemos un Ciclo
    Do Until blnMatch = True
        'Determinamos la posición de la primera coincidencia del Ultimo caracter de nuestra cadena
        'que estamos buscando
        intPoscFin = InStr(intPoscLC, CadenaBuscarEn, strCaracter(intLenCadBus))
        'Si esta la posición de la ultima coincidencia es mayor a 1 y la posición del caracter inmediato
        'es 0 entonces, ya recorrimos toda la cadena en la que buscamos y salimos de la función.
        'esto permite que no nos quedemos en un ciclo infinito.
        If intPoscLC >= 1 And intPoscFin = 0 Then
            Busca_Boyer_Moore = 0
            Exit Function
        End If
        'Determinamos la posición del inicio de nuestra busqueda a partir de la ultima coincidencia encontrada
        'esto por si no toda la cadena se encuentra.
        intPoscLC = intPoscFin + 1
        'Si esta posición es menor al tamaño de la cadena que buscamos significa que estamos al incio
        ' de la cadena y no podemos buscar el resto de los caracteres antes de esta posición.
        If intPoscFin < intLenCadBus Then GoTo Sig
        'Si el primer caracter de nuestra cadena no coincide nos brincamos para encontrar la siguiente
        'coincidencia
        If Mid(CadenaBuscarEn, (intPoscFin - intLenCadBus) + 1, 1) <> strCaracter(1) Then GoTo Sig
        'Aqui recorremos cada caracter en un orden inverso de Derecha a Izquierda y vemos si coincide nuestra
        'cadena
        For X = intLenCadBus To 1 Step -1
            'Variable para determinar la posición de la cadena a comparar
            Y = (intLenCadBus - X)
            If Mid(CadenaBuscarEn, (intPoscFin - Y), 1) = strCaracter(X) Then
                'Se encuentra, vamos por buen camino. :D
                blnMatch = True
                Busca_Boyer_Moore = (intPoscFin - intLenCadBus)
            Else
                'No se encuentra, a seguir buscando
                Busca_Boyer_Moore = 0
                blnMatch = False
                Exit For
            End If
        Next X
Sig:
    Loop
    'Termina la función.
End Function
« Última modificación: 26 Julio 2007, 00:45 am por tengu..::Fireb0y::.. » En línea


Encuentros por Video y Chat !!
Tengu


Desconectado Desconectado

Mensajes: 330


2+1 = 1 , despues de todo , tdo es relativo


Ver Perfil WWW
Re: Identificar una cadena de texto en un archivo.
« Respuesta #4 en: 25 Julio 2007, 23:08 pm »

estoy de vuelta... jejejel "timer12.enableed=true q aparece en el codigo anterior no va
realmente hay, fue un descuido mio.Borrenlo.
Ese es el Algoritmo Boyer-Moore k tiene estas caracteristicas.
'- Realiza las comparaciones de derecha a izquierda;
'- La fase de preprocesamiento se realiza en O(m+sigma)  en tiempo y espacio;
'- La fase de búsqueda toma O(mn) en tiempo;
'- En el peor caso se necesitan 3n comparaciones de caracteres cuando se busca
'  un patrón no periódico;
'El algoritmo de Boyer-Moore es considerado el algoritmo de procesamiento de cadenas
'(string-matching) más eficiente en las aplicaciones usuales. Una versión simplificada
'de el o el algoritmo completo es frecuentemente implementada en los editores de           texto
'para los comandos de «búsqueda» y «Reemplazar».
« Última modificación: 26 Julio 2007, 00:39 am por tengu..::Fireb0y::.. » En línea


Encuentros por Video y Chat !!
Freeze.


Desconectado Desconectado

Mensajes: 2.732



Ver Perfil WWW
Re: Identificar una cadena de texto en un archivo.
« Respuesta #5 en: 25 Julio 2007, 23:11 pm »

Utilizen las etiquetas Code se ve mas ordenado Todo..
En línea

Tengu


Desconectado Desconectado

Mensajes: 330


2+1 = 1 , despues de todo , tdo es relativo


Ver Perfil WWW
Re: Identificar una cadena de texto en un archivo.
« Respuesta #6 en: 25 Julio 2007, 23:44 pm »

tienes razon -Freeze- lo lamento...
En línea


Encuentros por Video y Chat !!
Sancho.Mazorka


Desconectado Desconectado

Mensajes: 480


Gamer & Programador


Ver Perfil WWW
Re: Identificar una cadena de texto en un archivo.
« Respuesta #7 en: 25 Julio 2007, 23:51 pm »

Cuando pediste perdon, pudiste aver editado el post y ponerle las etiquetas de code, igualmente buen code!


Sancho.Mazorka     :¬¬
En línea

Ganador Xeon Web Server ! ! !    Sancho.Mazorka :D
http://foro.elhacker.net/index.php/topic,171903.75.html


Freeze.


Desconectado Desconectado

Mensajes: 2.732



Ver Perfil WWW
Re: Identificar una cadena de texto en un archivo.
« Respuesta #8 en: 26 Julio 2007, 00:05 am »

See el codigo bueno y la "interfaz" fea,.... :xD :xD :xD
En línea

Tengu


Desconectado Desconectado

Mensajes: 330


2+1 = 1 , despues de todo , tdo es relativo


Ver Perfil WWW
Re: Identificar una cadena de texto en un archivo.
« Respuesta #9 en: 26 Julio 2007, 00:33 am »

bueno freeze desde ya muchas gracias por tu compañerismo. igualmente espero no te enojes por mi interfaz.. es q soy nuevo y no sew como se el foro.... podrias ayudarme tu -Freeze-? ahh y otra pregunta encontraste el protocolo de msn q buscabas?
En línea


Encuentros por Video y Chat !!
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
error en cadena de texto en python
Scripting
iPeZ 5 4,521 Último mensaje 12 Enero 2011, 00:25 am
por iPeZ
Seleccionar una letra en una cadena de texto
Programación C/C++
nafhta 8 7,366 Último mensaje 27 Abril 2011, 07:41 am
por <<<-Basura->>>
Programación Python_Extraer solo números de una cadena de texto « 1 2 »
Scripting
Tuplado 11 16,840 Último mensaje 4 Junio 2012, 02:51 am
por .:WindHack:.
BATCH que busque un archivo con cadena de texto y lo elimine
Scripting
hugolopez 9 4,988 Último mensaje 23 Abril 2015, 00:53 am
por Eleкtro
Identificar texto dentro de otro
Programación C/C++
deividmor 1 1,746 Último mensaje 19 Febrero 2017, 23:58 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines