Buscar cadenas de texto dentro de un archivo

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

0 Miembros y 2 Visitantes 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.