none
Quitar caracteres de una cadena

    Question

  • Tengo una variable la cual me almacena al recibir datos de un socket lo siguiente

    "Conectado \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"

    asi pero con algun \0 mas, como podria hacer para borrar dichos caracteres de la variable? o para que no me los metiera el socket al enviar la cadena?

    Tuesday, March 13, 2012 6:07 PM

Answers

  • string c = "Conectado \0\0...

    c = c.Substring(0, c.IndexOf('\0'));

    • Marked as answer by hectorrp Tuesday, March 13, 2012 7:01 PM
    Tuesday, March 13, 2012 6:53 PM

All replies

  • si haces

    strig cadena = "Conectado \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";

    string delim = @"\0";

    cadena = cadena.Trim(delim.ToCharArray());

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    Tuesday, March 13, 2012 6:16 PM
  • Pues no se por que pero no me lo hace, es que eso mismo he estado intentado hacer con TrimEnd y Replace pero no me funciona
    Tuesday, March 13, 2012 6:26 PM
  • no seran que esos caracteres representan el fin de una cadena

    de casualidad estas convirtiendo algun array en un string ?


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Tuesday, March 13, 2012 6:34 PM
  • Esto haciendo esto

    Byte[] msg = new Byte[1024];
    string Cadena = System.Text.Encoding.Default.GetString(msg);
    
    Cadena = Cadena.Trim(delim.ToCharArray());
    
    if(Cadena == "exit")
    {
        //....
    }

    Puede ser tambien por que la cadena va seguida de los \0, es decir : Conectado\0\0\0 en vez de Conectado \0\0\0 como puse

    Tuesday, March 13, 2012 6:53 PM
  • string c = "Conectado \0\0...

    c = c.Substring(0, c.IndexOf('\0'));

    • Marked as answer by hectorrp Tuesday, March 13, 2012 7:01 PM
    Tuesday, March 13, 2012 6:53 PM
  • Si tio era eso justo lo que queria!!! Mil gracias!!!!
    Tuesday, March 13, 2012 7:01 PM
  • pro si asi te funciono si usabas el

    string Cadena = System.Text.Encoding.Default.GetString(msg);
    
    Cadena = Cadena.Replace('\0', ' ');

    tambien deberia funcionar, es raro que hayas usado el Replace y no funcionara

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina



    Tuesday, March 13, 2012 7:11 PM