CLR: .Net / Mono / Boo / Otros CLR > C#
Separar cadena utilizando Substring en c sharp
LenguajeC:
Hola a todos.
Créanme que agoté todas la pruebas pero no logro separar la cadena encontrado en 5 partes tomando como referencia la coma, el caso es que recibo una lista de precios en un archivo .TXT y necesito mostrar el resultado de una determinada búsqueda, el código es mucho más extenso pero lo simplifique para que se entienda mejor(la búsqueda me funciona correctamente).-
--- Código: C# ---using System;using System.Collections.Generic; public class MyClass{ public static void Main() { string encontrado = "07793065000056,0000468,Aceite COSTA del SOL Girasol pvc x1.5Lt.,12x1.5 , 4.899, 0.000"; string mostrar = ""; int a = 0; for (byte b = 0; b < 5; b++) { if (b == 1) { a = 15;} if (b == 2) { a = 24;} if (b == 3) { a = 64;} if (b == 4) { a = 75;} mostrar = encontrado.Substring(a,encontrado.IndexOf(',')); Console.WriteLine("" + mostrar); } Console.ReadKey(); }}
Parte de la lista de precios en archivo .TXT
--- Código: C# ---05000000000036,0000003,Vacios de Cerveza ,x1u , 799.000, 0.00005000000000159,0000015,Jabón TOCADOR Varios ,X1 , 0.560, 0.00005000000000562,0000056,Jabon Polvo Suelto Miniespuma x 8kg ,01x8kg , 12.690, 0.00005000000000579,0000057,PROMO COCA COLA ZERO X 1LT ,x1 , 12.690, 0.00005000000000616,0000061,Jabón en Polvo SUELTOS ,01x01u , 2.500, 0.00005000000000647,0000064,Pañales SUELTOS ,01x10u , 2.000, 0.00005000000000777,0000077,Jugos Sobres Sueltos ,x01u , 0.510, 0.00005000000000807,0000080,Rollo Cocina Sueltos ,24x01u , 0.495, 0.00005000000000845,0000084,Espirales Sueltos (OCASION) ,01x04u , 0.590, 0.00005000100001032,0000103,Azúcar ,10x1Kg , 4.390, 0.00007791716000028,0000103,Azúcar ,10x1Kg , 4.390, 0.00007792241000026,0000103,Azúcar ,10x1Kg , 4.390, 0.00007792241000040,0000103,Azúcar ,10x1Kg , 4.390, 0.00007796537261245,0000103,Azúcar ,10x1Kg , 4.390, 0.00007797690000016,0000103,Azúcar ,10x1Kg , 4.390, 0.00007798019380017,0000103,Azúcar ,10x1Kg , 4.390, 0.00007798049780023,0000103,Azúcar ,10x1Kg , 4.390, 0.00007798049780047,0000103,Azúcar ,10x1Kg , 4.390, 0.00017791426000018,0000103,Azúcar ,10x1Kg , 4.390, 0.00007790220001705,0000106,Azúcar DUL-C ,10x01Kg , 3.090, 0.00007791100000283,0000107,Azúcar CHANGO PREMIUM x 1Kg ,10x1Kg , 4.399, 0.00007791100004441,0000107,Azúcar CHANGO PREMIUM x 1Kg ,10x1Kg , 4.399, 0.00005000000001095,0000109,Azúcar FRONTERITA Paquete x1Kg ,10x01Kg , 4.899, 0.00007790220000531,0000109,Azúcar FRONTERITA Paquete x1Kg ,10x01Kg , 4.899, 0.00007791100000481,0000110,Azúcar CHANGO paquete x1Kg ,10x01Kg , 4.399, 0.00007791100004465,0000110,Azúcar CHANGO paquete x1Kg ,10x01Kg , 4.399, 0.00017791100000389,0000110,Azúcar CHANGO paquete x1Kg ,10x01Kg , 4.399, 0.00005000000001248,0000124,Sidra de Ocasion Real-ET.NEGRA ,x1 , 1.910, 0.00005000000002061,0000206,Edulcorante HILERET "1A10" x50u. ,12x50u , 3.125, 0.00007794940000109,0000206,Edulcorante HILERET "1A10" x50u. ,12x50u , 3.125, 0.00005000000002139,0000213,Azúcar HILERET Light ,06x500gr , 5.769, 0.00007794940000536,0000213,Azúcar HILERET Light ,06x500gr , 5.769, 0.00007794940000567,0000219,Edulcorante HILERET 1A10 Sobres 500u ,01x500u , 14.769, 0.00005000000002726,0000272,Dentifrico Suelto x 90g ,01x90g , 1.900, 0.00005000000002733,0000273,Dentifrico Suelto x 140g ,01x140g , 2.850, 0.00005000000002740,0000274,Dentifrico Suelto x 180g ,01x180g , 3.500, 0.00005000000002757,0000275,Papel Higienico Suelto x48u ,48x1 , 0.300, 0.00005000000002856,0000285,Jugos TANG Suelto x 500u ,01x500u , 0.570, 0.00005000000002863,0000286,Jugo CLIGHT Suelto x 500u ,01x500u , 0.630, 0.00005000000002900,0000290,Jugos TANG Suelto x 50u ,01x50u , 0.600, 0.00005000000002917,0000291,Jugos CLIGHT Suelto x 50u ,01x50u , 0.650, 0.00005000000003068,0000306,Azúcar Impalpable JERACO x400gr. ,10x400 , 5.065, 0.00007797109000026,0000306,Azúcar Impalpable JERACO x400gr. ,10x400 , 5.065, 0.00005000000003075,0000307,Azúcar Impalpable JERACO x200gr. ,24x200 , 2.535, 0.00007797109000019,0000307,Azúcar Impalpable JERACO x200gr. ,24x200 , 2.535, 0.00007792540081054,0000317,Azúcar LEDESMA REAL - ANCASTE ,10x01Kg , 4.399, 0.00007792540111010,0000317,Azúcar LEDESMA REAL - ANCASTE ,10x01Kg , 4.399, 0.00007792540111027,0000317,Azúcar LEDESMA REAL - ANCASTE ,10x01Kg , 4.399, 0.00005000000003662,0000366,Aceite COSTA DEL SOL Girasol Bidon pvc ,04x5Lt , 17.710, 0.00007793065000070,0000366,Aceite COSTA DEL SOL Girasol Bidon pvc ,04x5Lt , 17.710, 0.00007790070012050,0000391,Aceite COCINERO Girasol pet x900cc ,15x900cc , 3.200, 0.000
Espero puedan ayudarme, tengo el marote a la miseria.-
Saludos.
Daniel
ProfesorX:
Porque tratar de descubrir el hilo negro con Susbstring, cuando me parece que con Split() a mi parecer puedes obtener mas facilmente lo que te propones.
--- Código: C# --- using System;using System.Collections.Generic;using System.Linq;using System.Text; public class MyClass{ public static void Main() { string encontrado = "07793065000056,0000468,Aceite COSTA del SOL Girasol pvc x1.5Lt.,12x1.5 , 4.899, 0.000"; string[] cadenas_separadas; cadenas_separadas = encontrado.Split(','); foreach (string cadena in cadenas_separadas) { Console.WriteLine(cadena); } Console.ReadKey(); }}
Creo que se adapta a lo que quieres ¿no?
Recomiendo que siempre revises todos los metodos/propiedades de una clase, para ver si alguno tiene cosas que te puedan servir. En este caso estaba el metodo Split() de la clase string, que no habias visto.
Si no es lo que necesitabs, publica mas detalles de lo que quieres, a ver si te podemos ayudar.
Saludos :)
P.D.: En realidad la cadena se separa en 6 partes, no en 5 como mencionabas, son 5 comas, pero separa 6 cadenas.
LenguajeC:
Hola ProfesorX
Muchas gracias ese método me solucionó todo.-
--- Citar ---Recomiendo que siempre revises todos los metodos/propiedades de una clase, para ver si alguno tiene cosas que te puedan servir. En este caso estaba el metodo Split() de la clase string,
--- Fin de la cita ---
Amigo, tengo 59 años y no soy tu alumno.-(Esto lo encontré en otro foro:"usa string.split y lo resolverás?" era tan simple como eso).-
Saludos.
Daniel
ProfesorX:
--- Cita de: "LenguajeC" ---Amigo, tengo 59 años y no soy tu alumno
--- Fin de la cita ---
Eso lo se, pero igual aplica lo que te mencione, fue una sugerencia, en mi caso yo tengo 41 años, y puedo aprender cosas de gente mas joven y mas vieja que yo, la edad en realidad viene a ser irrelevante (conozco gente de 12 años que le da la vuelta a gente mayor, y tambien gente de mas de 50 años que tambien saben mucho, mas que gente de 20 a 30 años, que seria la edad "ideal"). Lo de revisa los metodos de las clases fue mas como consejo, no como orden. Yo siempre reviso los metodos/propiedades de las clases, para ver que me puede servir para hacer mejor mi trabajo. Eso no significa que no puedas preguntar si tienes dudas, sino mas bien que debes investigar un poco mas ;)
Tu tambien puedes hacerlo utilizando el examinador de objetos de Visual C#, veras que te ayuda muchisimo, y asi vas conociendo mas de cada clase de .NET.
Espero no te lo hayas tomado a mal.
Saludos :)
LenguajeC:
Hola ProfesorX
Muy bien, esta todo muy bien, en cuanto al examinador de objetos de Visual C# ni idea ya que uso como IDE el SnippetCompiler, me lo sugirieron para empezar con programas pequeños.-
Ahora tengo otra duda, el texto encontrado lo necesito poner en el portapapeles y no puedo encontrar el método correspondiente, hay buena información al respecto en la Web pero no para programas de consola.-
En el futuro te voy a enviar un privado, debes ser muy buena persona pero muy buena para reaccionar como lo hiciste después de mi post, son con los que deseo relacionarme.- :beer:
Como siempre muchas gracias x tu ayuda.-
Un abrazo.
Daniel
Navegación
[#] Página Siguiente
Ir a la versión completa