Bonjour,
Je dois porter une application qui fait de la communication serie du C# vers le C (sous linux). Mon problème étant : quel est le caractère de fin de chaîne par défaut du C# ? LF ? CR-LF ? NL ?
Voila merci par avance.
Bonjour,
Je dois porter une application qui fait de la communication serie du C# vers le C (sous linux). Mon problème étant : quel est le caractère de fin de chaîne par défaut du C# ? LF ? CR-LF ? NL ?
Voila merci par avance.
sous linux \n
sous windows \r\n
sinon tu peux utiliser mono pour porter ton projet sous linux
en esperant que cela puisse t'aider
Sinon on peut aussi ne pas se fatiguer et utiliser Environment.NewLine
Il faudrait quand même préciser que ce caractère de fin de chaine n'existe que pour une chaine dans un fichier texte et contrairement au C/C++ il n'existe pas de caractère de fin de chaine en mémoire, puisque la longeur de la chaine est une propriété de l'objet.
Ce que tu dit est vrai tant que tu ne fais pas de l'interop. Sinon finir les chaines par le /0 est parfois nécessaire.
Je n'ai jamais écrit que ce n'était pas nécessaire à l'occasion (quoique dans ce cas là , j'ajouterais plutôt une class "stringC" ou quelque chose d'approchant pour isoler l'emploi de ces 0 binaires surnuméraires, afin qu'ils ne viennent pas polluer le reste de l'application) mais juste qu'un objet String en C# n'a pas de caractère de fin de chaine.
Si tu ajoute un 0 binaire à une chaine C# la longueur de la chaine pour un consommateur C# s'incrémente de 1.
L'interprétation comme fin de chaine de ce caractère sera strictement réservé aux APIs appelé via l'interop, pas du tout par les consommateurs C# (ou .net plus largement) qui verront ton 0 comme partie intégrale de la chaine (ce qui n'est certainement pas souhaitable).
Je n'ai pas dit que tu n'avais pas raison, j'ai juste dit que pour l'interop, ça pouvais parfois poser problème. Peut être que ça sert à rien dans le cadre actuel, mais peut être un futur problème fera remonter cette hypothèse
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager