Alguien sabe buscar palabra de x caracteres y los demás caracteres a continuació

Iniciado por usuario oculto, 2 Agosto 2010, 02:41 AM

0 Miembros y 2 Visitantes están viendo este tema.

usuario oculto

  ¿Alguien sabría como se hace en vb para buscar una palabra con por ejemplo 5 caracteres (en números) dentro de un texto y por ejemplo las 20 palabras que vayan a continuación?.(he buscado en google y no encuentro nada)

  Ejemplo form1: label:  buscar palabras con 4 carácteres en números y 2 caracteres cualquieras a continuación.
  textbox : ruta del archivo txt
  commandbutton: extraer

 
  contenido del archivo txt:

  elhacker.net es un foro en el que usuario1234 ha realizado un tutorial.

  se crea archivo ejemplo.txt con el contenido: 1234 ha


  ___________
  No digo que me lo deis todo ya masticado (que estaría bien jaja) pero un poco de orientación a este pobre n00b en programación.
  He buscado en google como extraer palabras:

     1. Option Explicit 
   2.   
   3. ' ------------------------------------------------------------------------------ 
   4. ' \\ -- Botón para seleccionar el archivo y leer el las palabras 
   5. ' ------------------------------------------------------------------------------ 
   6. Private Sub Command1_Click() 
   7.   
   8.     Dim Vector()    As String 
   9.     Dim n           As Integer 
  10.     Dim linea       As String 
  11.     Dim texto       As String 
  12.       
  13.     ' -- Configurar diálogo 
  14.     With CommonDialog1 
  15.         .FileName = vbNullString 
  16.         .DialogTitle = " Seleccione el archivo de texto " 
  17.         ' -- Establecer el Filtro ( Archivos de texto y todas las extensiones ) 
  18.         .Filter = "Txt|*.txt|Todos|*.*" 
  19.         ' -- Abrir 
  20.         .ShowOpen 
  21.           
  22.         If .FileName = "" Then Exit Sub 
  23.               
  24.         ' -- Abrir el archivo 
  25.         Open .FileName For Input As #1 
  26.     End With 
  27.       
  28.     ' -- Lee el archivo de texto 
  29.     While Not EOF(1) 
  30.        ' -- Leer una línea 
  31.        Line Input #1, linea 
  32.        If linea = vbNullString Then linea = " " 
  33.        ' -- Almacenar el contenido del archivo 
  34.        texto = texto & linea 
  35.     Wend 
  36.       
  37.     Close 
  38.       
  39.     ' -- Eliminar los espacios dobles 
  40.     texto = Eliminar_Espacios(texto) 
  41.       
  42.     ' - Cargar en el vector las palabras con la función Split 
  43.     Vector = Split(texto, " ") 
  44.     ' -- Eliminar items previos 
  45.     List1.Clear 
  46.     Dim xItem As Variant 
  47.     ' -- Recorrer en un bucle para agregar los elemntos del Array al control List 
  48.     For Each xItem In Vector 
  49.         If Len(xItem) Then List1.AddItem xItem 
  50.     Next 
  51. End Sub 
  52.   
  53. ' -------------------------------------------------------------------------------- 
  54. ' \\ -- Eliminar los espacios dobles con la función Replace 
  55. ' -------------------------------------------------------------------------------- 
  56. Public Function Eliminar_Espacios(texto As String) As String 
  57.       
  58.     On Error GoTo ErrSub 
  59.   
  60.     texto = Replace(texto, vbTab, " ") 
  61.     texto = Replace(texto, vbCrLf, " ") 
  62.       
  63.     Do While (InStr(texto, "  ")) 
  64.        texto = Replace(texto, "  ", " ") 
  65.     Loop 
  66.   
  67.     Eliminar_Espacios = Trim$(texto) 
  68.       
  69.     Exit Function 
  70.   
  71. ErrSub: 
  72.     MsgBox Err.Description, vbCritical 
  73. End Function 
  74.   
  75.   
  76. Private Sub Form_Load() 
  77.     Command1.Caption = "Seleccionar un archivo" 
  78. End Sub 
Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)

Psyke1

Creo que con algo asi bastaria, si te he entendido bien:

Código (vb) [Seleccionar]
Public Function Get_String_And_Chars(ByVal sTextToAnalyze As String, ByVal sWord As String, ByVal lCharsToAdd As Long) As String
   Dim bvLenWord       As Byte
   Dim lPosition       As Long
   
   bvLenWord = Len(sWord)
   lPosition = InStr(sTextToAnalyze, sWord)
   
   If lPosition > 0 Then
       Get_String_And_Chars = Mid$(sTextToAnalyze, lPosition, bvLenWord + lCharsToAdd)
   End If
End Function


Ejemplo:
Código (vb) [Seleccionar]
Private Sub Form_Load()
   Debug.Print Get_String_And_Chars("Esto solo es un ejemplo 123 para que veas que funciona... :P", "ejemplo", 4)
End Sub


Devuelve:
Citarejemplo 123

DoEvents¡! :P

usuario oculto

Que le jodan a  la salud mental!
Fecha de registro:    16 Noviembre 2008, 17:38
años atrás users baneados :)

Psyke1

Ahora que me doy cuenta al leerlo otra vez...
Esa funcion solo te sacaria un resultado, es decir, si en txt tienes mas veces la palabra a buscar solo sacaria el primero que encuentro...  :-\
Pero bueno, teniendo eso como base no te resultara muy dificil modificarlo a tu gusto...
Solo tienes que ir guardando resultados e un Array o en una Collection...
Intentalo, si no postea y te hecho una mano!  ;)

DoEvents¡! :P