Ajuda split C#

alfinete

Power Member
Código:
1 conjunto de ferramentas,
    1 Expansor;
1 protecção maleável com 2mx2m em plástico transparente,
1 conjunto de material,
    cunhas;

tenho esta listagem que é como quero que ela apareça numa label depois de tratada, ou seja vou passa-la para uma string ....

Código:
 string texto = "1 conjunto de ferramentas,1 Expansor;2 Expansor;1 protecção maleável com 2mx2m em plástico transparente,1 conjunto de material,cunhas;botas;";

tenho os termos separados por , e ; isto porque;
o que está antes de ',' cooresponde a termo principal
antes de ;, termo secundário pertencente ao termo proncipal antrerior.


o que eu quero é o seguinte ....


ao ter a string texto com os devidos separadores, quero fazer um algoritmo que me separe os titulos e subtitulos conforme a minha configuração do , e ; tal como vistos na listagem que pus ao inicio deste poste.

sendo assim decidi utilizar o split



Código:
string texto = "1 conjunto de ferramentas,1 Expansor;2 Expansor;1 protecção maleável com 2mx2m em plástico transparente,1 conjunto de material,cunhas;botas;";
        string textofinal = string.Empty;
        string textosubfinal = string.Empty;

        private void Form1_Load(object sender, EventArgs e)
        {
            lbltexto.Text  = texto;  
  

        }

        private void button1_Click(object sender, EventArgs e)
        {
           [COLOR=Red] string[] textovirg = texto.Split(',');
               for (int i = 0; i < textovirg.Length; i++)
                {
                    
                    textofinal = textofinal + "- " + textovirg[i] + "\n";[/COLOR]

                 [COLOR=Yellow]   string[] textopontvirg = textovirg[i].Split(';');
                
                         for (int j = 0; j < textopontvirg.Length; j++)

                            textofinal = textofinal + "   - " + textopontvirg[j] + "\n";[/COLOR]
                  
            [COLOR=Red]    }

           lblfinal.Text=textofinal;  [/COLOR]
        }

se puser no code do botão o code que esta a vermelho, ele faz tdo bem em relação a listagem com ,
mas quando ponho o amarelo , estraga tudo...

gostava que me ajudassem a resolver o problema

obrigada
 
pressupondo que queres o output em plaintext, não seria mais simples substituir "," por ", + \n" e ";," por "; +<tab> + \n", em vez de andares com o split?

cumps
 
Código:
 char[] delimiterChars = { ',', ';' };
            string[] textovirg = texto.Split(delimiterChars);
               for (int i = 0; i < textovirg.Length; i++)
                {

                  
                    textofinal = textofinal + "- " + textovirg[i] + "\n";
                  
                  
               
                    
                }

           lblfinal.Text=textofinal;

assim ja dá

mas agra quero detectar qual foi o split por onde ele passou como posso afzer isso
 
Back
Topo