Foros del Web » Programación para mayores de 30 ;) » .NET »

Como corto esta maldita cadena

Estas en el tema de Como corto esta maldita cadena en el foro de .NET en Foros del Web. Hola a todos soy primeriso en esto de c# y no se como cortar una cadena de texto: por ejemplo tengo esta cadena : Pantalon ...
  #1 (permalink)  
Antiguo 27/04/2012, 08:37
 
Fecha de Ingreso: abril-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Como corto esta maldita cadena

Hola a todos soy primeriso en esto de c# y no se como cortar una cadena de texto:
por ejemplo tengo esta cadena :

Pantalon talla Grande color Azul

y quiero que por ejemplo
pantalon me lo guarde en string1
grande en string 2
y azul en string 3

es un principio lo habia hecho con split, pero como la cadena puede variar ahi ya no se como hacerlo ya que otra cadena puede ser

Playera tipo polo talla chica color roja
y quiero que
en string 1 se guarde playera tipo polo
en string 2 grande
en string 3 roja.

Ayudenm por favor estoy muy desesperado, de antemano muchas gracias.
  #2 (permalink)  
Antiguo 27/04/2012, 10:20
 
Fecha de Ingreso: marzo-2012
Ubicación: Durango
Mensajes: 6
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Como corto esta maldita cadena

Hola que tal... viendo tu post supongo que te gustaria que:

el string1 sea igual a la prenda
el string2 sea igual a la talla
el string3 sea igual al color

Esta cadena la introduce el usuario o la formas apartir de la seleccion de por ejemplo un combo que tenga prendas, otro que tenga tallas y otro que tenga los colores??

Ademas, segun tus ejemplos, las palabras clave "talla" y "color" siempre estaran dentro de la cadena? siempre en el mismo orden? el color y la talla siempre es una sola palabra (me refiero a que no lleve espacios)??

Si lo que quieres es "cortar" la cadena y la respuesta a las preguntas que te hice son si, entonces una opcion es hacer el split pero de atras para adelante

el color siempre sera el total de elementos menos 1, la talla sera el total menos 3 y la prenda sera del total menos 5 al 0...

Claro que basandome en el ejemplo que diste y que en verdad carece de informacion mas concreta

Por supuesto para mi gusto hay mejores alternativas si lo que quieres es hacer una tienda de ropa..
  #3 (permalink)  
Antiguo 27/04/2012, 13:26
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: Como corto esta maldita cadena

No entiendo el problema. De hecho, la solución correcta es mediante split:

string origen = "hola programadores de forosdelweb."
string[] separadas = origen.Split(' ');

foreach (string cadena in separadas)
{
System.Console.WriteLine(cadena);
}
__________________
Aviso: No se resuelven dudas por MP!
  #4 (permalink)  
Antiguo 27/04/2012, 16:02
 
Fecha de Ingreso: abril-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: Como corto esta maldita cadena

ok creo que la verdad no puse muy bien la informacion
Bueno lo que pasa es una variable tipo cadena , en la cual se pueden almacenar algunas de las siguientes cadenas:

Pantalon Talla Grande Color Rojo
Camisa tipo polo talla mediana color azul marino
chamarra talla 40 color amarillo canario

ahora lo quisiera es que en cada una de las variables guarde lo siguiente

string1 Pantalon o Camisa tipo polo o Chamarra segun sea el caso
string2 grande o mediana o 40
string3 rojo o azul marino o amarillo canario

Espero entindas y me puedas ayudar.
  #5 (permalink)  
Antiguo 27/04/2012, 19:22
Avatar de emmax  
Fecha de Ingreso: agosto-2010
Ubicación: Sonora
Mensajes: 172
Antigüedad: 13 años, 8 meses
Puntos: 8
Respuesta: Como corto esta maldita cadena

Hola quickzj, lo que pasa y como te lo explican arriba lo mejor que pudieras hacer es tomar por separado el Articulo, puede ser chamarra, pantalon, camisa, etc., luego la talla y por ultimo el color asi no batallas con eso de separar la cadena, es decir manejarias 3 strings en lugar de uno solo.

Saludos...
  #6 (permalink)  
Antiguo 29/04/2012, 11:33
Avatar de jhodmar  
Fecha de Ingreso: febrero-2012
Ubicación: Medellin
Mensajes: 52
Antigüedad: 12 años, 2 meses
Puntos: 1
Respuesta: Como corto esta maldita cadena

Hola la forma que se me ocurre ya que no sabes que tantas palabras tendria la descripcion.. o como seria la talla y ademas por lo que veo el color puede ser compuesto...
si siempre tiene palabras claves de talla y color yo mandaria buscar el indice de estas 2 palabras las cuales serian mi clave para cortar la cadena total.... tendria 1º indice para talla de ahi hacia atras seria toda la descripcion..luego la talla seria a partir del primer espacio despues del 1º indice en adelante hasta 2 indice y color estaria dado desde el primer espacio despues del 2º indice hasta el final...
lo que debes consultar seria las funciones que te pernitan buscar indices en string y la forma como cortar esas cadenas.. no manejo C#
  #7 (permalink)  
Antiguo 29/04/2012, 18:33
 
Fecha de Ingreso: abril-2012
Mensajes: 4
Antigüedad: 12 años
Puntos: 0
Respuesta: Como corto esta maldita cadena

Muchas gracias a todos por sus comentarios y sugerencias ya pude solucionar ese tipo de problema que tenia, les dejo el codigo por si a alguno le llegara a interesar, en el solo lo que hice fue ir encontrando la posicion de las palabras claves que eran talla y color y ya con ese seleccionar los caracteres deseados con el metodo substring:

private void Form1_Load(object sender, EventArgs e)
{
string cad = "Camisa tipo polo talla mediana color azul marino";
string subcadena;
int pos = Convert.ToInt32(cad.IndexOf("talla"));
subcadena = cad.Substring(0, pos);
label1.Text = subcadena;
int pos2 = Convert.ToInt32(cad.IndexOf("color"));
subcadena = cad.Substring(pos+5, pos2-(pos+5));
label2.Text = subcadena;
int Pos3 = cad.Length;
subcadena = cad.Substring(pos2 + 5,Pos3-(pos2+5));
label3.Text = subcadena;
}
  #8 (permalink)  
Antiguo 29/04/2012, 19:25
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 8 meses
Puntos: 87
Respuesta: Como corto esta maldita cadena

la forma a prueba de errores es usar Regex.
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #9 (permalink)  
Antiguo 01/05/2012, 21:22
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Respuesta: Como corto esta maldita cadena

Y porque no manejar 3 cajas de texto para identificar su correspondencia ???

txt1 = tipo
txt2 = tamaño
txt3 = color

No es correcto dejar una cadena de texto abierta ya que puedes tener infinidad de combinaciones y no podrías asegurar que las validaciones que estás haciendo estás correctas

Por ejemplo, como identificarías el siguiente texto
Camisa tipo polo talla mediana color azul marino"

y que el usuario escribiera con errores en la caja de texto

CamisaTipo polo, tallamediana azul marino
Kmisa tipopolo, entalla medianaazul marino
etc., etc

Es solo una sugerencia
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #10 (permalink)  
Antiguo 04/05/2012, 15:03
Avatar de murdoc92  
Fecha de Ingreso: mayo-2012
Ubicación: Santiago
Mensajes: 58
Antigüedad: 12 años
Puntos: 3
Respuesta: Como corto esta maldita cadena

Como sea tienes que usar split, luego puedes usar un if para realizar una tarea diferente dependiendo del número de cortes.
Ej:
string string1 = "Pantalon o Camisa tipo polo o Chamarra segun sea el caso";
string string2 = "grande o mediana o 40";
string string3 = "rojo o azul marino o amarillo canario";
List<string> strings = new List<string>();
strings.add(string1);
strings.add(string2);
strings.add(string3);

List<string[]> prendas = new List<string[]>;
foreach(string value in strings)
{
string[] cortes = value.Split(' ');
if(cortes.length == 8)
{
string[] prenda = new string[8];
prenda[0] = cortes[0];
prenda[1] = cortes[1];
prenda[2] = cortes[2];
prenda[3] = cortes[3];
prenda[4] = cortes[4];
prenda[5] = cortes[5];
prenda[6] = cortes[6];
prenda[7] = cortes[7];
prendas.Add(prenda);
}
else if(cortes.length == 7)
{
string[] prenda = new string[8];
prenda[0] = cortes[0];
prenda[1] = cortes[1];
prenda[2] = cortes[2];
prenda[3] = cortes[3];
prenda[4] = string.Empty;
prenda[5] = cortes[4];
prenda[6] = cortes[5];
prenda[7] = cortes[6];
prendas.Add(prenda);
}
}

Saludos.
EM.
  #11 (permalink)  
Antiguo 24/04/2014, 12:59
 
Fecha de Ingreso: enero-2010
Mensajes: 2
Antigüedad: 14 años, 3 meses
Puntos: 0
Información Respuesta: Como corto esta maldita cadena

Supongo que lo mejor que puedes hacer es cada que haya un espacio las separas

string[] palabras = cadena.Split(' ');

ahí te quedan y si necesitas unir algunas sólo haces

Nueva palabra = string[0]+" "+string[1]; perdón si respondí tarde e.e

Etiquetas: corto, maldita, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:53.