Texto seleccionado saber el numero de linea que se encuentra

Iniciado por ELGRANSOLRAC, 30 Abril 2006, 21:09 PM

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

ELGRANSOLRAC

Hola lo que yo queria es que cuando tengo seleccionado un texto saber en que numero de linea se encuentra en la 3,5,88,9999, la que sea gracias a quien pueda ayudarme

VirucKingX



Bye

ELGRANSOLRAC

Lo que quiero es abrir un archivo de texto y en una de las lineas del texto comenzara por "Pass" no se cual es la linea pero tiene que ser la linea que empiece el texto con los mismos caracteres "Pass" lo entendiste ahora.Gracias por tu interes

NYlOn

Suponiendo que tu archivo esta cargado en la variable Texto

For i = 1 to len(Texto)
    If Mid(Texto, i, 4) = "Pass" then
        MsgBox "Pass se encuentra en la linea " & i
    End If
Next i

   

No se si es eso lo que buscas...

Gorky

#4
Cita de: NYlOn en  1 Mayo 2006, 04:14 AM
Suponiendo que tu archivo esta cargado en la variable Texto

For i = 1 to len(Texto)
    If Mid(Texto, i, 4) = "Pass" then
        MsgBox "Pass se encuentra en la linea " & i
    End If
Next i

   

No se si es eso lo que buscas...

Eso es erroneo. Eso te diria la posicion respecto de los caracteres en la que se encuentra pero no la linea en la que esta. A ver si es esto lo que buscas:


Open "archivo.txt" For Input As #1
For i = 1 To LOF(1)
   Input #1, linea
   If left(linea, 4) = "pass" Then encontrado = i
Next i


No lo he probado en VB ya que no tengo el compilador instalado pero supongo que funcionara.

ELGRANSOLRAC

Hola  en esta linea me da el error

Input #1, linea '
"La entrada de datos ha sobrepasado el final del archivo, erro 62.
no lo entiendo...

Gorky

Fallo mio. Creo que es por esto:

For i = 0 To LOF(1)

Cambialo por:

For i = 1 To LOF(1)


MazarD

El problema está en que input se usa así:
resultado=input(numero de caracteres, #canal)

Necesitas saber el número de caracteres a recoger por lo que deberías cargar todo el archivo en memória i buscar.
Personalmente prefiero hacerlo de este modo:

encontrado=false
while not eof(1) and not encontrado
      line input #1, linia
      cnt=cnt+1
      if left$(linia,4)="Pass" then
           encontrado=true
           msgbox "Encontrado en" & cnt
      endif
wend


Cual es mejor? pues uno te consume mas memoria y el otro mas entradas y salidas, aunque a este nivel es indiferente.

Saludos
     
-Learn as if you were to live forever, live as if you were to die tomorrow-

http://www.mazard.info
http://twitter.com/MazarD
irc://irc.freenode.org/elhacker.net