Buscar cadenas de texto dentro de un archivo

Iniciado por z3nth10n, 5 Febrero 2013, 15:56 PM

0 Miembros y 1 Visitante están viendo este tema.

z3nth10n

Hola, pues bueno, como Elektro tuvo una "pelea" o "discusion" con spirithead y elektro cerro el tema pues abro este.

Estuve buscando y encontre un mensaje de sebaneo pero en otro foro del que tambien era mod:

Código (vbnet) [Seleccionar]
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim posicion As Integer
        posicion = InStr(TextBox1.Text, "llamo")
        MsgBox(posicion)
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = "me llamo sebastián"
    End Sub
End Class


Pero como lo uso en un archivo externo?

Un saludo.

⏩ Interesados hablad por Discord.

Danyfirex

Pues Simplemente abrí el archivo lo pones en una variable string usas  InStr.

saludos

Eleкtro

#2
Cita de: Seazoux en  5 Febrero 2013, 15:56 PMcomo Elektro cerro el tema pues abro este.
Yo no lo cerré, no soy moderador de esta sección, también me cerraron mi post por desgracia.




Código (vbnet) [Seleccionar]
       Dim Texto As String = My.Computer.FileSystem.ReadAllText("C:\Archivo.txt")
       Dim Pos As Integer = InStr(Texto, "String")
       MsgBox(Pos)



Código (vbnet) [Seleccionar]
        Dim Text_Pos As String = InStr(My.Computer.FileSystem.ReadAllText("C:\Archivo.txt"), "String")
        MsgBox(Text_Pos)








z3nth10n

Se puede hacer una matriz de pos? es decir que busque llamo, hola, adios y tal y que luego el dim sea global para estas 4 variables  :xD

⏩ Interesados hablad por Discord.

ABDERRAMAH

#4
Se puede hacer una matriz de lo que quieras, puedes usar el modo standard declarando as integer() o usar la lista gestionada as new list(of integer). La diferencia es que la primera se debe declarar con límites y para alargarla o encogerla hay que usar redim, la segunda tiene la función add(item) que redimensiona y añade automáticamente, es más cómoda y si en un momento dado necesitas array y no te sirve listof pues usas la función toarray().


Dim Texto As String = My.Computer.FileSystem.ReadAllText("C:\Archivo.txt")
Dim Pos As new list (of integer) = {InStr(Texto, "hola"), InStr(Texto, "oso"), InStr(Texto, "panda"), InStr(Texto, "verde")}.tolist


puedes consultar el resultado:

for each Posicion as integer in Pos
MsgBox(Posicion.tostring)
next


coma más coma menos lo estoy escribiendo sin el ide y nunca se sabe...

z3nth10n

Llevo varios dias sin tocar el proyecto, y aun sin tocar nada, creo que voy a intuir unas de las funciones, por ejemplo, si yo tengo:

CitarHola como estas, me llamo Seazoux y tengo x años, vivo en españa tatatatara xD
Yo de pequeño, no se que no se cuantas....

Y busco la palabra, me, va a decir el alert (me llamo Seazoux y tengo x años, vivo en españa tatatatara xD), pero en renglón de abajo no me lo va a decir, si estoy en lo cierto (aun no he llegado a probar la funcion InStr)

Sin embargo quiero que por ejemplo busque desde me hasta Seazoux, qiero que me salga:

me llamo Seazoux

Como podria poner ese limite....

Un saludo.

⏩ Interesados hablad por Discord.

Danyfirex

http://msdn.microsoft.com/es-ve/library/cc437602(v=vs.71).aspx

hay muchas formas.
podrías leer de linea a linea.
podrías delimitar los nuevas lineas.

z3nth10n

Todavia no tengo el proyecto en mis manos, estoy desde otro ordenador...

aplicado a lo que yo quiero hacer... si busco src="...; me va a salir los src de imgs, y yo estoy interesado por los de iframe...

Pero si busco <iframe src="...; pero puede venir definido asi o puede venir definido así: <iframe algoqueinterfiereenlabuqueda src="...; entonces, no va salir nada en esa busqueda...  :silbar:

⏩ Interesados hablad por Discord.

Eleкtro

Cita de: Seazoux en 20 Febrero 2013, 20:19 PM
Pero si busco <iframe src="...; pero puede venir definido asi o puede venir definido así: <iframe algoqueinterfiereenlabuqueda src="...; entonces, no va salir nada en esa busqueda...  :silbar:

Claro que sí, para las variaciones del string puedes usar expresiones regulares:

Buscas:
\<iframe.*src\=.*
Y encuentras:
<iframe(cualquier serie de caracteres que se repita)src=(cualquier serie de caracteres que se repita)

http://en.wikipedia.org/wiki/Regular_expression
http://www.dotnetperls.com/regex-match-vbnet
http://www.vb-helper.com/howto_net_regular_expression.html
http://visualbasic.about.com/od/usingvbnet/a/RegExNET_2.htm

saludos








z3nth10n

Y por ejemplo, pueen haber links que quiera ocultar qu e estaria dentro del src de cada iframe, como lo podria hacer para que no salgan en la busqueda? :P

⏩ Interesados hablad por Discord.