Autor Tema: [Solucionado]Duda al leer el codigo fuente de una pagina web  (Leído 7813 veces)

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

NsTeam

  • Kilobyte
  • **
  • Mensajes: 54
  • Reputación: +1/-2
    • Ver Perfil
[Solucionado]Duda al leer el codigo fuente de una pagina web
« en: Diciembre 04, 2010, 11:53:21 am »
Hola amigos

Tengo un problema al tratar de leer el codigo fuente de una Web...

Bueno en si, si puedo llegar a leer el codigo fuente de la pagina la cual esta en formato .txt

ejemplo    http://www.example.com/123.txt

el codigo de la pagina seria este.. ya que es un documento en formato .txt

Código: [Seleccionar]
http://www.google.com
http://www.192.168.1.1/admin/login.asp
http://www.midominio.com/carpeta1/documento.txt


Logro leerlo en un textbox lo siguiente


 
Pero en vez de que se salte al siguiente reglon me manda esa barrita
 


Tengo el TexBox con la Propiedad Multiline en true...
 
Intente leyendolo en un  RitchTextBox Lo cual Pude Leerlo Normal
 
Código: [Seleccionar]
http://www.google.com
http://www.192.168.1.1/admin/login.asp
http://www.midominio.com/carpeta1/documento.txt

Pero al usar un timer para copiar su contenido del Richtextbox al TextBox me copia todo en una linea de nuevo con la barrita Negra
 
 

 
el problema es que tengo que usar el textbox para leer linea por linea...
ya que si intento leer en el ritchtextbox lo lee todo como una sola linea
 
Como Podria hacer para reemplazar esa linea por un "Enter" o tendria que modificar algo para que no me aparezca la barrita al leer el codigo fuente de la pagina y en vez de la barra mande... al siguiente reglon
 
Espero dejarme Entender.. y aver si alguien me da una manito con Esto
 
Gracias de Antemano

PD: el codigo para leer el codigo fuente de una pagina es el siguiente

Código: (vb) [Seleccionar]
Dim strUrl As String

Private Sub Command1_Click()
    On Error GoTo manejadorerror
    strUrl = txtURLbox.Text
    If Len(strUrl) > 11 Then
        Screen.MousePointer = 13
        txtNote.Text = Inet1.OpenURL(strUrl)
        Screen.MousePointer = 0
        MsgBox ("Descarga completada"), vbInformation
    Else
        Screen.MousePointer = 0
        MsgBox "Introduzca un nombre de documento válido en el cuadro URL"
    End If
    Exit Sub
manejadorerror:
    Screen.MousePointer = 0
    MsgBox "Error en la conexión con el URL", , Err.Description
End Sub

lo cual necesita un CommandButton , un txtURLbox.text y un txtNote.text

Si leen esta pag "http://www.gamerzvip.com/123.txt" veran que les pasa el mismo error
« última modificación: Diciembre 05, 2010, 01:18:20 pm por NsTeam »

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #1 en: Diciembre 04, 2010, 12:04:54 pm »
Intenta reemplazar el textBox por un RichtText te deberia funcionar creo que esas barritas negrras que decis son saltos de carro.
Dime si te sirvio luego!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

NsTeam

  • Kilobyte
  • **
  • Mensajes: 54
  • Reputación: +1/-2
    • Ver Perfil
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #2 en: Diciembre 04, 2010, 12:28:45 pm »
COn un richtextbox logro hacerlo

Pero al copiar ese contenido del ritchtexbox a un textbox... me copia todo en un a linea  con las barritas... el project que andaba haciendo tiene que usar un  textbox porque mi project lee linea por linea el contenido de la caja de texto lo cual no logra leer linea por linea en el ritch text box

gracias por responder
« última modificación: Diciembre 04, 2010, 02:45:48 pm por xkiz »

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #3 en: Diciembre 04, 2010, 02:27:53 pm »
Mira este ejemplo que te prepare creo que te puede servir :

Debería cargar el contenido de tu control 'txtURLbox' en la variable TEXTO y si los caracteres que como barritas son Chr(10) debiera cuncionar sino te anda reemplaza todos los chr(10) por chr(13) y dime.

Código: (vb) [Seleccionar]
Dim M() As String
Dim N

TEXTO = "HOLA 1" & Chr(10) & "HOLA 2" & Chr(10) & "HOLA 3"

M() = Split(TEXTO, Chr(10))

For N = 0 To UBound(M())
    Text1.Text = Text1.Text & M(N) & vbNewLine
Next
« última modificación: Diciembre 04, 2010, 02:47:49 pm por xkiz »
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

NsTeam

  • Kilobyte
  • **
  • Mensajes: 54
  • Reputación: +1/-2
    • Ver Perfil
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #4 en: Diciembre 04, 2010, 02:48:41 pm »
mmm lo probe y no me anda me sigue.. apareciendo esas barritas tanto como Chr(10) y Chr(13) en vez del salto al siguiente reglon u.U
« última modificación: Diciembre 04, 2010, 02:53:51 pm por xkiz »

xkiz ™

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 283
  • Reputación: +30/-11
    • Ver Perfil
    • xkiz ™
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #5 en: Diciembre 04, 2010, 03:00:14 pm »
el textBox, tiene establecida la propiedad de Multilinea?
en todo caso, en el Api Guide hay un ejemplo de como poder hacer eso, de leer el "source" de una pagina,, InternetReadFile

Código: (vb) [Seleccionar]
Const scUserAgent = "API-Guide test program"
Const INTERNET_OPEN_TYPE_DIRECT = 1
Const INTERNET_OPEN_TYPE_PROXY = 3
Const INTERNET_FLAG_RELOAD = &H80000000
Const sURL = "http://www.microsoft.com/index.htm"
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Sub Form_Load()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: KPDTeam@Allapi.net

    Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
    'Create a buffer for the file we're going to download
    sBuffer = Space(1000)
    'Create an internet connection
    hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
    'Open the url
    hFile = InternetOpenUrl(hOpen, sURL, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
    'Read the first 1000 bytes of the file
    InternetReadFile hFile, sBuffer, 1000, Ret
    'clean up
    InternetCloseHandle hFile
    InternetCloseHandle hOpen
    'Show our file
    MsgBox sBuffer
End Sub

fijate si eso te sirve adaptandolo a tus necesidades ovbiamente.
PD: cuando estes desarrollamdo un software, es recomendable usar debug.print, te puede evitar muchos dolores de cabeza

« última modificación: Diciembre 04, 2010, 03:10:09 pm por xkiz »

NsTeam

  • Kilobyte
  • **
  • Mensajes: 54
  • Reputación: +1/-2
    • Ver Perfil
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #6 en: Diciembre 04, 2010, 03:11:12 pm »
si amigo... si tengo habilitada la propiedad multiline...

el cuanto al codigo gracias...

pero puedo leer el codigo de la pagina el problema es la barrita negra que impide el salto a la siguiente linea
« última modificación: Diciembre 04, 2010, 03:42:56 pm por xkiz »

xkiz ™

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 283
  • Reputación: +30/-11
    • Ver Perfil
    • xkiz ™
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #7 en: Diciembre 04, 2010, 03:57:43 pm »
mmmmmmm.... puede ser algo de unicode, o algo asi, ya no me acuerdo como era esa conversion, pero usa esto funciona perfecto:

Código: (vb) [Seleccionar]
Const INTERNET_FLAG_RELOAD = &H80000000
Private Declare Function InternetOpen Lib "wininet" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet" (ByVal hInet As Long) As Integer
Private Declare Function InternetReadFile Lib "wininet" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetOpenUrl Lib "wininet" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal lpszUrl As String, ByVal lpszHeaders As String, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long
Private Sub Form_Load()
Debug.Print GetUrl("http://www.gamerzvip.com/123.txt", 1000)
'Text1.Text = GetUrl("http://www.gamerzvip.com/123.txt", 1000)
End Sub

Private Function GetUrl(url As String, Bytes As Long) As String
Dim hOpen As Long, hFile As Long, sBuffer As String, Ret As Long
sBuffer = Space(Bytes)
hOpen = InternetOpen(vbNullString, 1, vbNullString, vbNullString, 0)
hFile = InternetOpenUrl(hOpen, url, vbNullString, ByVal 0&, INTERNET_FLAG_RELOAD, ByVal 0&)
InternetReadFile hFile, sBuffer, Bytes, Ret
InternetCloseHandle hFile
InternetCloseHandle hOpen
GetUrl = Trim(sBuffer)
End Function
« última modificación: Diciembre 04, 2010, 04:02:21 pm por xkiz »

raul338

  • Terabyte
  • *****
  • Mensajes: 894
  • Reputación: +62/-8
  • xD fan!!!!! xD
    • Ver Perfil
    • Raul's Weblog
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #8 en: Diciembre 04, 2010, 04:13:11 pm »
pero puedo leer el codigo de la pagina el problema es la barrita negra que impide el salto a la siguiente linea

Intenta obtener el codigo ascii de esa barrita (tiene que ser 10 o 13) entonces reemplazas

Text1.Text = Replace$(Text1.Text, Chr$(13), vbNewLine)

Bazooka

  • Terabyte
  • *****
  • Mensajes: 951
  • Reputación: +31/-20
  • El pibe Bazooka
    • Ver Perfil
    • Desof sistemas
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #9 en: Diciembre 04, 2010, 04:43:51 pm »
Mira este ejemplo que te prepare creo que te puede servir :

Debería cargar el contenido de tu control 'txtURLbox' en la variable TEXTO y si los caracteres que como barritas son Chr(10) debiera cuncionar sino te anda reemplaza todos los chr(10) por chr(13) y dime.

Código: (vb) [Seleccionar]
Dim M() As String
Dim N

TEXTO = "HOLA 1" & Chr(10) & "HOLA 2" & Chr(10) & "HOLA 3"

M() = Split(TEXTO, Chr(10))

For N = 0 To UBound(M())
    Text1.Text = Text1.Text & M(N) & vbNewLine
Next

Hola que raro si pruebas este ejemplo tal como te lo pase veras que funciona! por que no pegas tu codigo completo o el contenido del textbox como texto no como imagen que lo pusiste alli!
Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

xkiz ™

  • Moderador Global
  • Gigabyte
  • *****
  • Mensajes: 283
  • Reputación: +30/-11
    • Ver Perfil
    • xkiz ™
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #10 en: Diciembre 04, 2010, 07:51:40 pm »
mm bue voy a la opcion mas bruta:
Creo que era algo asi, puede fallar!!
Split

Código: (vb) [Seleccionar]
Dim temp() as string
Dim i as integer
temp = split(Text1.Text, "|")

for i = LBound(temp) to UBound(temp)
debug.print temp(i)
Next

NsTeam

  • Kilobyte
  • **
  • Mensajes: 54
  • Reputación: +1/-2
    • Ver Perfil
Re:Duda al leer el codigo fuente de una pagina web
« Respuesta #11 en: Diciembre 05, 2010, 01:18:02 pm »
pero puedo leer el codigo de la pagina el problema es la barrita negra que impide el salto a la siguiente linea

Intenta obtener el codigo ascii de esa barrita (tiene que ser 10 o 13) entonces reemplazas

Text1.Text = Replace$(Text1.Text, Chr$(13), vbNewLine)

Gracias a Todos por responder...

pero la idea mas facil era la de raul

txtNote.Text = Replace$(txtNote.Text, Chr$(10), vbNewLine)

y me ando de lujo...

de Nuevo gracias a todos y en especial a Raul :)