none
CodeDom Compiler error : Line is too long RRS feed

  • Question

  • Bonjour, j'ai un petit problème lors de la génération d'un exécutable avec CodeDom.

    Dans ma source il y a un "String" qui comporte plus de 65535 caractères et donc j'ai l'erreur suivante :

    Error ID: BC30494

    Line is too long.

    Je voulais savoir si il existait un moyen de contourner cette erreur.

    Si ce n'est pas possible, comment puis-je la découper en plusieurs "String" de 10000 caractères ?

    Merci d'avance pour vos réponses.

    Au plaisir de vous lire.

    BreizhNet

    lundi 9 août 2010 08:42

Réponses

  • Bonjour,

    Faites une boucle en coupant votre chaîne de caractère tous les 1024 caractèrs (par exemple). Utilisez pour cela la méthode String.Substring().

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS ADO .NET 3.5 - MCPD Windows Developper 3.5 - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Marqué comme réponse BreizhNet lundi 9 août 2010 12:43
    lundi 9 août 2010 11:29
    Modérateur

Toutes les réponses

  • Bonjour,

    Il suffit tout simplement de faire de la concaténation de chaînes de caractères comme ceci :

    s = "Toto" + _
       "Truc" + _
       "Bidule"
    

    Ne vous inquietez pas, le compilateur créera automatiquement une seule chaîne de caractère.

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS ADO .NET 3.5 - MCPD Windows Developper 3.5 - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    lundi 9 août 2010 09:34
    Modérateur
  • En fait je ne peux pas le faire manuellement.

    J'ai le code source à compiler dans les Resources de mon application et je le modifie de la façon suivante :

    Dim mysourcecode As String = My.Resources.String1.Replace("0xxx2", ToBase64(Encoding.ASCII.GetBytes(unFichierExe)))
    
    Après je compile "mysourcecode".

    ToBase64(Encoding.ASCII.GetBytes(unFichierExe))
    

    est trop long et je ne peux pas faire de concaténation.

    Il n'existe pas une fonction qui me permettrait de le faire?

    lundi 9 août 2010 09:59
  • Bonjour,

    Faites une boucle en coupant votre chaîne de caractère tous les 1024 caractèrs (par exemple). Utilisez pour cela la méthode String.Substring().

    Cordialement


    Gilles TOURREAU - MVP C# - MCTS ADO .NET 3.5 - MCPD Windows Developper 3.5 - Architecte .NET/Consultant/Formateur - http://gilles.tourreau.fr
    • Marqué comme réponse BreizhNet lundi 9 août 2010 12:43
    lundi 9 août 2010 11:29
    Modérateur
  • Merci Gilles je vais utiliser ta méthode.
    lundi 9 août 2010 12:43