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).
Partager