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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  2 delimitadores para obtener texto (vb.net)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: 2 delimitadores para obtener texto (vb.net)  (Leído 5,793 veces)
<housedir>

Desconectado Desconectado

Mensajes: 199



Ver Perfil
2 delimitadores para obtener texto (vb.net)
« en: 22 Julio 2013, 07:30 am »

hola a todos, esto es algo que me parece muy simple pero que vb.net como que lo hace dificil o complicado, ya intente con ubound y lbound pero no logre hacer lo que quiero, lo que deseo es lo siguiente, supongamos que tengo este texto en un textbox:

hola a todos <inicio>bienvenidos[fin] adios

lo que quiero obtener es "bienvenidos", cabe mencionar que el texto "bienvenidos" siempre va a variar, lo unico que siempre sera igual son los delimitadores <inicio> y [fin], saludos y gracias por su ayuda


En línea

Titulo: Padre nuestro
Padre Nuestro que estás en www.cielo.com
Santificado sea tu server, venga a nosotros tu shareware
Hágase tu downloading así en el http como en el ftp
Danos hoy nuestro surfing de cada día,
Perdona nuestros bugs
como nosotros también perdonamos a Microsoft.
No nos dejes caer en una Mac y líbranos de todo worm.
Enter...
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: 2 delimitadores para obtener texto (vb.net)
« Respuesta #1 en: 22 Julio 2013, 07:53 am »

esto es algo que me parece muy simple pero que vb.net como que lo hace dificil o complicado

Disculpa si me equivoco pero por tu comentario me parece que desconoces una cosa muy importante de la programación, es la forma más idonea de hacerlo y compatible con el 99% de lenguajes,
Son las expresiones regulares:

http://en.wikipedia.org/wiki/Regular_expression
http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex%28v=vs.110%29.aspx

Código
  1.        Dim str As String = "hola a todos <inicio>bienvenidos[fin] adios"
  2.        Dim [RegEx] As New System.Text.RegularExpressions.Regex("<inicio>(.*)\[fin\]")
  3.        MsgBox([RegEx].Match(str).Groups(1).ToString)
  4.        ' Result: "bienvenidos"


EDITO:
Los RegEx te sirven para cualquier circunstancia, no recomiendo usar otra forma como por ejemplo replaces o splits o funciones de VB6 como "InStr, Left, Split", pero si quieres algo de eso puedes hacer esto otro:

Código
  1.        Dim str As String = "hola a todos <inicio>bienvenidos[fin] adios"
  2.        Dim delimiter1 As String = "<inicio>", delimiter2 As String = "[fin]"
  3.        MsgBox(Split(Split(str, delimiter1)(1), delimiter2)(0))

Saludos


« Última modificación: 22 Julio 2013, 08:18 am por EleKtro H@cker » En línea

El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: 2 delimitadores para obtener texto (vb.net)
« Respuesta #2 en: 22 Julio 2013, 07:57 am »

En realidad lo tienes sencillo.

Primero utiliza la función InStr() para obtener la posición donde aparece "<inicio>"
Después vuelva a utilizar esa función para obtener la posición donde aparece "[final]"
Ahora saca la utiliza la función Left() para obtener la cadena desde el primer marcador hasta el segundo. Si no entiendes bien cómo es esto te daré una pista: VariableFinal - VariableInicio
Y por último utiliza la función Replace() para eliminar "<inicio>" y "[final]".
En línea

www.es.neftis-ai.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
<housedir>

Desconectado Desconectado

Mensajes: 199



Ver Perfil
Re: 2 delimitadores para obtener texto (vb.net)
« Respuesta #3 en: 22 Julio 2013, 08:31 am »

Disculpa si me equivoco pero por tu comentario me parece que desconoces una cosa muy importante de la programación, es la forma más idonea de hacerlo y compatible con el 99% de lenguajes,
Son las expresiones regulares:

http://en.wikipedia.org/wiki/Regular_expression
http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex%28v=vs.110%29.aspx

Código
  1.        Dim str As String = "hola a todos <inicio>bienvenidos[fin] adios"
  2.        Dim [RegEx] As New System.Text.RegularExpressions.Regex("<inicio>(.*)\[fin\]")
  3.        MsgBox([RegEx].Match(str).Groups(1).ToString)
  4.        ' Result: "bienvenidos"


EDITO:
Los RegEx te sirven para cualquier circunstancia, no recomiendo usar otra forma como por ejemplo replaces o splits o funciones de VB6 como "InStr, Left, Split", pero si quieres algo de eso puedes hacer esto otro:

Código
  1.        Dim str As String = "hola a todos <inicio>bienvenidos[fin] adios"
  2.        Dim delimiter1 As String = "<inicio>", delimiter2 As String = "[fin]"
  3.        MsgBox(Split(Split(str, delimiter1)(1), delimiter2)(0))

Saludos

Muchas gracias por tu ayuda, si las conozco pero se me hace un poco confuso usar las expresiones regulares, en realidad los delimitadores son "<div class="lo que sea">" y "</div>" de un codigo html, quisiera sacar el contenido de ese div pero no se como colocar las expresiones en vb.net
En línea

Titulo: Padre nuestro
Padre Nuestro que estás en www.cielo.com
Santificado sea tu server, venga a nosotros tu shareware
Hágase tu downloading así en el http como en el ftp
Danos hoy nuestro surfing de cada día,
Perdona nuestros bugs
como nosotros también perdonamos a Microsoft.
No nos dejes caer en una Mac y líbranos de todo worm.
Enter...
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.817



Ver Perfil
Re: 2 delimitadores para obtener texto (vb.net)
« Respuesta #4 en: 22 Julio 2013, 22:13 pm »

ahora no estoy delante de la IDE para testear, pero prueba así:

Código
  1. Dim [RegEx] As New System.Text.RegularExpressions.Regex( _
  2. <a><![CDATA[<div class=\"lo que sea\">(.*)<\/div>]]></a>.Value))

...Y matcheas el grupo 1.

Aquí tienes otros ejemplos que te servirán:
http://foro.elhacker.net/net/libreria_de_snippets_posteen_aqui_sus_snippets-t378770.0.html;msg1856865#msg1856865
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Extraer Palabra de un String con delimitadores
PHP
spysecurityca 4 3,609 Último mensaje 3 Septiembre 2014, 16:51 pm
por WHK
Delimitadores consecutivos
Scripting
Gokuman 2 2,482 Último mensaje 14 Marzo 2015, 04:03 am
por FranciskoAsdf
Programa que reconoce parentesis corchetes y llaves como delimitadores
Programación C/C++
drummfer99 4 5,488 Último mensaje 30 Septiembre 2015, 05:51 am
por DarK_FirefoX
MOVIDO: Regex + split con dos delimitadores en c#
Programación General
Eleкtro 0 1,780 Último mensaje 30 Julio 2017, 15:38 pm
por Eleкtro
Error al recuperar datos de fichero de texto con delimitadores
Programación C/C++
DarAlan 6 2,425 Último mensaje 24 Enero 2019, 01:35 am
por alpachino98
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines