55 votes

Comment enlever ' \0 à partir d'une chaîne de caractères en C# ?

Je voudrais savoir comment enlever ' \0 ' à partir d'une chaîne de caractères. C'est peut-être très simple, mais ce n'est pas le cas pour moi qui suis un nouveau développeur C#.

J'ai ce code :

public static void funcTest (string sSubject, string sBody)
{
    Try
      {
        MailMessage msg = new MailMessage(); // Set up e-mail message.
        msg.To = XMLConfigReader.Email;
        msg.From = XMLConfigReader.From_Email;
        msg.Subject = sSubject;
        msg.body="TestStrg.\r\nTest\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\r\n";     
      }
    catch (Exception ex) 
      {
        string sMessage = ex.Message;     
        log.Error(sMessage, ex);   
      }
}

Mais ce que je veux, c'est :

msg.body="TestStrg.\r\nTest\r\n";

Alors, y a-t-il un moyen de faire cela avec un simple code ?

64voto

Noldorin Points 67794

Il semble que vous voulez juste le string.Replace (méthode statique).

var cleaned = input.Replace("\0", string.Empty);

Edit : Voici le code complet, comme demandé :

public static void funcTest (string sSubject, string sBody)
{
    try
    {
        MailMessage msg = new MailMessage();
        msg.To = XMLConfigReader.Email;
        msg.From = XMLConfigReader.From_Email;
        msg.Subject = sSubject;
        msg.Body = sBody.Replace("\0", string.Empty);
    }
    catch (Exception ex) 
    {
        string sMessage = ex.Message;     
        log.Error(sMessage, ex);   
    }
}

0 votes

Bonjour Noldorin.... Alors comment j'ajoute cette ligne de code dans ma fonction. Car lorsque j`ajoute une nouvelle ligne de code dans la fonction, elle n`est pas exécutée et je ne sais pas pourquoi.... S'il vous plaît aidez-moi comment insérer cette ligne de code que vous fournissez dans ma fonction afin d'être exécuté normalement. Merci beaucoup...

0 votes

Quand je modifie la ligne : msg.body = sBody.Replace(" \0 ", string.Empty) ; une erreur brute est générée : 'System.Web.Mail.MailMessage.body' est inaccessible en raison de son niveau de protection. 1)Pourquoi ? 2)Lorsque j'ajoute un nouveau code dans mon projet. Il ne t executed and step over it and I don Vous ne savez pas pourquoi ? Pouvez-vous me dire pourquoi ? Merci beaucoup...

0 votes

Ok, je pense que ce code va le faire. Mais quand j'ajoute un nouveau code à ma fonction, il ne fonctionne pas. t executed at runtime.. I don Je ne sais pas quoi faire. Pouvez-vous m'aider ?

51voto

harveyt Points 150

J'utilise : something.TrimEnd('\0')

13voto

Drew Points 145

C'était le premier résultat dans Bing, et il n'y avait pas ma méthode préférée, qui est la suivante

string str = "MyString\0\0\0\0".Trim('\0');

9voto

anishMarokey Points 6895

Vous devez juste Remplacer il

msg.body="TestStrg.\r\nTest\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\r\n".Replace("\0", string.Empty);

0 votes

Ici la connexion internet est trop lente :( à poster bientôt

10 votes

@Noldorin, c'est incroyablement grossier pour une différence de 3 minutes.

0 votes

@Anthony : Pas vraiment. a) C'est 4 minutes, b) C'est une mauvaise étiquette de poster une réponse identique alors que plusieurs ont déjà été postées, juste pour gagner des points de réputation. Si je réponds très tard alors qu'une question a déjà été traitée, je supprime ma réponse de manière appropriée.

6voto

w69rdy Points 5658

Essayez ça :

msg.Body = msg.Body.Replace("\0", "");

0 votes

Il semble que cela devrait fonctionner. Mais j'ai maintenant un autre problème et j'ai besoin de votre aide. Lorsque j'ajoute une nouvelle ligne de code à une classe de mon projet c#. Cette ligne de code n'est pas exécutée au moment de l'exécution et le débogueur la survole. 1) Comment faire pour que le nouveau code soit exécuté ? 2) Existe-t-il une propriété dans Visual studio 2005 ? 3) Ou est-ce quelque chose lié au projet c# ? Merci d'avance pour toute tentative d'aide

1 votes

On dirait que le projet n'est pas en cours de construction, et donc que toute nouvelle modification apportée est ignorée. Vérifiez que votre projet est configuré pour être construit dans le gestionnaire de configuration.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X