elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  manejo de strings
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: manejo de strings  (Leído 2,743 veces)
elrecar

Desconectado Desconectado

Mensajes: 30


Ver Perfil
manejo de strings
« en: 12 Octubre 2007, 03:14 am »

hola preciso una ayuda, resulta k tengo un programa k hace una peticion http a un server y guarda la respuesta en un textbox k es la siguiente:

Código:
HTTP/1.1 302 Found
Date: Fri, 12 Oct 2007 01:09:02 GMT
Server: Apache
Vary: *
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Fri, 12 Oct 2007 01:09:02 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache
Location: http://www.url.com
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

301
<html><head><meta http-equiv="refresh" content="0; URL=http://www.url.com"></head><body><a href='http://www.url.com'>Please click here ... </a></body></html>

ahora kisiera saber komo hacer para kedarme solo con "http://www.url.com" y guardarlo en una variable de tipo string.
graxias


En línea

~~
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.981


Ver Perfil WWW
Re: manejo de strings
« Respuesta #1 en: 12 Octubre 2007, 14:04 pm »

Puedes hacer varias cosas. Si esa cadena siempre esta en la misma linea (la nº 10) haces un split a todo el text box partiendo por el caracter de retorno de carro, es decir vbnewline y luego con mid obtener la parte q te interesa (si no lo logras te hago un ejemplo)

O si no esta siempre en la misma linea buscar la cadena "Locatios: " con instr y devolver la url (lo mismo si no lo logras dimelo y te paso un ejemplo)

Salu3


En línea

elrecar

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: manejo de strings
« Respuesta #2 en: 14 Octubre 2007, 00:48 am »

gracias E0N, lo he logrado, pero no me convence la forma novata que emplee para resolverlo xD
ahi va:

Código:
Private Sub Form_Load()
Dim cadena As String
Dim url As String
Dim c As String

Dim url_final As String

cadena = "blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"Location: http://www.url.com"


 url = InStr(1, cadena, "Location:")
 c = Mid(cadena, url)
 url_final = Replace(c, "Location:", "")
 
 MsgBox url_final
 
 End Sub

me gustaria ver otra posible solucion, sino iwal no importa
thanks again!
En línea

elrecar

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: manejo de strings
« Respuesta #3 en: 14 Octubre 2007, 01:08 am »

ahhh ya no esta terminado nada ... XD

por ejemplo si el string es:

cadena = "blablablablablanlkablabajnkajnakj" & vbCrLf & _
"blablablablablanlkablabajnkajnakj" & vbCrLf & _
"Location: http://www.url.com" & vbCrLf & _
"dwflkjdsflksdfjlksdfjlksdfjlksfdklsdfsfdsfdlkfsd"

me devuelve "http://www.url.com
                     dwflkjdsflksdfjlksdfjlksdfjlksfdklsdfsfdsfdlkfsd"
 
y mmm "solucione" con lo siguiente:

   c = Mid(cadena, url, 30)


pero en realidad yo no se el largo de la URL siempre es variante...

alguna idea?  :huh:
En línea

Spider-Net


Desconectado Desconectado

Mensajes: 1.165


Un gran poder conlleva una gran responsabilidad


Ver Perfil WWW
Re: manejo de strings
« Respuesta #4 en: 14 Octubre 2007, 02:26 am »

Podrías hacer un bucle que avanzase por la cadena desde el primer caracter hasta que el caracter sea " " (osea un espacio) o bien el retorno de carro (osea vbcrlf  cuyo valor ascii es el 13), cada vez que avance la cadena suma 1 a una variable y en el momento que llegue al espacio o al retorno de carro quiere decir que la url ha terminado y el tamaño que tenga la variable de incremento sería el tamaño de la cadena que quieres.. te pongo un ejemplo:

Código
  1. Private Sub Form_Load()
  2. Dim cadena, url, c, url_final As String 'declaracion de variables
  3. Dim x, i As Integer 'variable x para tamaño de cadena e i para caracter ascii
  4. x = 1 'iniciamos x al primer caracter osea 1
  5.  
  6. cadena = "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  7. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  8. "Location: http://www.url.com" & vbCrLf & _
  9. "dwflkjdsflksdfjlksdfjlksdfjlksfdklsdfsfdsfdlkfsd"
  10.  
  11. url = InStr(1, cadena, "Location:")
  12. c = Mid(cadena, url)
  13. url_final = Replace(c, "Location: ", "")
  14.  
  15. While x < Len(url_final) 'mientras x sea menor que el tamaño total de url_final
  16.    i = Asc(Mid(url_final, x, 1)) 'i es igual al valor ascii del caracter x de url_final
  17.    If i = 13 Or Mid(url_final, x, 1) = " " Then 'si el caracter es vbcrlf o el caracter es un espacio
  18.        url_final = Left(url_final, x) 'ya tenemos el tamaño de la url final en x
  19.        MsgBox url_final 'mostramos la url final
  20.    Else
  21.        x = x + 1 'sino seguimos recorriendo la cadena
  22.    End If
  23. Wend
  24.  
  25. End Sub

A mi me funciona perfectamente, comprobado ;D si tienes algún problema postealo, creo que era eso lo que querías.

Saludos.
En línea

HaDeS, -
WarZone Master

Desconectado Desconectado

Mensajes: 284



Ver Perfil WWW
Re: manejo de strings
« Respuesta #5 en: 14 Octubre 2007, 09:19 am »

Código
  1. Private Sub Command1_Click()
  2. cadena = "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  3. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  4. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  5. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  6. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  7. "blablablablablanlkablabajnkajnakj" & vbCrLf & _
  8. "Location: http://www.url.com"
  9.  
  10. headers = Split(cadena, vbCrLf)
  11. For j = 0 To UBound(headers)
  12.    headers2 = Split(headers(j), " ")(0)
  13.    If LCase(headers2) = "location:" Then url = Replace(Split(headers(j), " ")(1), " ", ""): GoTo Escape
  14. Next j
  15. Escape:
  16. MsgBox url
  17. End Sub
  18.  
algo mas peque :P

saludos!!
En línea

elrecar

Desconectado Desconectado

Mensajes: 30


Ver Perfil
Re: manejo de strings
« Respuesta #6 en: 16 Octubre 2007, 20:28 pm »

gracias a todos :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mantener ordenados strings
Programación C/C++
RON06 0 2,375 Último mensaje 21 Febrero 2011, 14:36 pm
por RON06
Problema con STRINGS
Programación C/C++
kaskull 2 2,232 Último mensaje 28 Diciembre 2012, 19:00 pm
por kaskull
MANEJO DE STRINGS EN VB.NET
.NET (C#, VB.NET, ASP)
igustin10 2 2,632 Último mensaje 21 Diciembre 2016, 15:49 pm
por igustin10
Manejo de strings enormes y caracteres?
Programación C/C++
@XSStringManolo 6 3,052 Último mensaje 11 Junio 2019, 20:15 pm
por @XSStringManolo
Manejo de Strings
Programación General
_whiteBird 6 4,303 Último mensaje 26 Junio 2020, 02:37 am
por Tachikomaia
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines