Autor
|
Tema: manejo de strings (Leído 2,723 veces)
|
elrecar
Desconectado
Mensajes: 30
|
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: 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
|
|
|
|
~~
|
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
Mensajes: 30
|
gracias E0N, lo he logrado, pero no me convence la forma novata que emplee para resolverlo xD ahi va: 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
Mensajes: 30
|
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?
|
|
|
En línea
|
|
|
|
Spider-Net
Desconectado
Mensajes: 1.165
Un gran poder conlleva una gran responsabilidad
|
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: Private Sub Form_Load() Dim cadena, url, c, url_final As String 'declaracion de variables Dim x, i As Integer 'variable x para tamaño de cadena e i para caracter ascii x = 1 'iniciamos x al primer caracter osea 1 cadena = "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "Location: http://www.url.com" & vbCrLf & _ "dwflkjdsflksdfjlksdfjlksdfjlksfdklsdfsfdsfdlkfsd" url = InStr(1, cadena, "Location:") c = Mid(cadena, url) url_final = Replace(c, "Location: ", "") While x < Len(url_final) 'mientras x sea menor que el tamaño total de url_final i = Asc(Mid(url_final, x, 1)) 'i es igual al valor ascii del caracter x de url_final If i = 13 Or Mid(url_final, x, 1) = " " Then 'si el caracter es vbcrlf o el caracter es un espacio url_final = Left(url_final, x) 'ya tenemos el tamaño de la url final en x MsgBox url_final 'mostramos la url final Else x = x + 1 'sino seguimos recorriendo la cadena End If Wend End Sub
A mi me funciona perfectamente, comprobado si tienes algún problema postealo, creo que era eso lo que querías. Saludos.
|
|
|
En línea
|
|
|
|
HaDeS, -
WarZone Master
Desconectado
Mensajes: 284
|
Private Sub Command1_Click() cadena = "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "blablablablablanlkablabajnkajnakj" & vbCrLf & _ "Location: http://www.url.com" headers = Split(cadena, vbCrLf) For j = 0 To UBound(headers) headers2 = Split(headers(j), " ")(0) If LCase(headers2) = "location:" Then url = Replace(Split(headers(j), " ")(1), " ", ""): GoTo Escape Next j Escape: MsgBox url End Sub
algo mas peque saludos!!
|
|
|
En línea
|
|
|
|
elrecar
Desconectado
Mensajes: 30
|
gracias a todos
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Mantener ordenados strings
Programación C/C++
|
RON06
|
0
|
2,353
|
21 Febrero 2011, 14:36 pm
por RON06
|
|
|
Problema con STRINGS
Programación C/C++
|
kaskull
|
2
|
2,201
|
28 Diciembre 2012, 19:00 pm
por kaskull
|
|
|
MANEJO DE STRINGS EN VB.NET
.NET (C#, VB.NET, ASP)
|
igustin10
|
2
|
2,619
|
21 Diciembre 2016, 15:49 pm
por igustin10
|
|
|
Manejo de strings enormes y caracteres?
Programación C/C++
|
@XSStringManolo
|
6
|
2,971
|
11 Junio 2019, 20:15 pm
por @XSStringManolo
|
|
|
Manejo de Strings
Programación General
|
_whiteBird
|
6
|
4,261
|
26 Junio 2020, 02:37 am
por Tachikomaia
|
|