salut toute le monde
comment je peux convertir cette instruction du VB.Net au C# ?
c'est quoi Asc ? Mid ?Code:byteOut(i + 5) = Asc(Mid("Stop", i, 1));
Version imprimable
salut toute le monde
comment je peux convertir cette instruction du VB.Net au C# ?
c'est quoi Asc ? Mid ?Code:byteOut(i + 5) = Asc(Mid("Stop", i, 1));
il y a des convertisseurs vb.net c# sur le net
dont celui là : http://www.developerfusion.com/tools.../csharp-to-vb/
néanmoins ils ne vont peut être pas aimer asc et mid qui sont des héritages de vb6
asc retourne le numéro ascii d'un caractère, l'équivalent doit se trouver sur les system.text.encoding.Ascii
mid retourne la sous chaine contenu à partir d'un nombre de caractères sur x caractères
tu peux utiliser string.substring pour avoir le même effet
m'enfin je pense que le code que tu as parcours une chaine pour obtenir les octets ascii de chaque caractère, donc il y a ce qu'il faut dans le framework pour faire ca en une ligne via encoding.Ascii
Tu auras quelque chose de ce goût là :
Code:
1
2
3
4
5 String sFoo = "STOP" ; for (int i = 0; i < ... ; i++) { byteOut[i+5] = ASCIIEncoding.ASCII.GetBytes(sFoo.Substring(i,1)); }
Il convertit ça en Strings.Asc et Strings.Mid
Sinon, en convertissant manuellement ça donne ça :
Mais de toutes façons, si le but est de convertir une chaine en tableau de caractères, il vaut mieux utiliser la classe EncodingCode:byteOut[i + 5] = (char)("Stop"[i]);
Et copier ensuite dans le tableau de destination avec Array.Copy :Code:byte[] stopBytes = Encoding.ASCII.GetBytes("Stop");
Code:Array.Copy(stopBytes, 0, byteOut, 5, stopBytes.Length);
Merci pour toute
la solution final et correcte est
C# Code
Code:byteout[i + 5] = (byte)(ASCIIEncoding.ASCII.GetBytes(Back.Substring(i - 1, 1))[0]);
Salut
oui le code est dans une boucle for,
qu'elle est la solution optimise?
à priori le code sert à avoir les octets d'une chaines de caractères
getbytes a une surcharge qui demande un string il me semble donc il suffit de lui donner le string en entier plutot que de faire une boucle pour lui donner caractère par caractère
Mmouais
Le premier piege a eviter en traduisant d'un language a l'autre c'est d'essayer de traduire instruction par instruction, il faut essayer de traduire avant tout la logique et non convertir chaque instructions
De meme qu'on ne traduit jamais un texte mot a mot ou alors le resultat est illisible et dépourvu de sens !
Donc genius4evers aurais du expliquer un peu plus son contexte de traitement, on aurait pu mieux l'aider et il aurais sans doute plus appris.