Tableau

Résolu
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010 - 15 mai 2007 à 08:17
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010 - 15 mai 2007 à 11:53
Slt,j'ai un code du style:
int i;
char *ptr;
for(ptr=.......,i=0;i<7;i++,ptr++)
{*ptr=...;}
Comment je peux le faire en C#?Vu qu'il n ya pas de pointeur.
Merci.

13 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
15 mai 2007 à 09:27
Hello,

Je ne suis de loin pas un pro du C/C++, mais en gros, tu veux assigner une valeur à chacun des charactère d'un tableau de charactères ou d'une string.

Si tu veux réellement un tableau de char :

char[] tab = new char[8];
for(int i=0;i<tab.Length;i++)
{
   tab[i] =...;
}

Si tu veux directement une chaîne de charactères :

string s = new string(' ', 8);

Amicalement, SharpMao
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
15 mai 2007 à 11:38
Essaie avec quelque chose comme ça :

Byte[] recu = new byte[10];

...

StringBuilder sb = new StringBuilder(); //Ce stringBuilder remplace ton buffer
sb.Append(Encoding.UTF8.GetString(recu)); //cette ligne remplace ta boucle

J'ai pris l'encoding UTF8, mais si tes charactères sont d'un autre encoding, tu n'as plus qu'à le changer.

Amicalement, SharpMao
3
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 mai 2007 à 09:59
Merci.
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
15 mai 2007 à 10:07
Hello encore,

Juste un détail, lorsqu'une réponse te convient, n'oublie pas de cliquer sur le bouton réponse acceptée.
De cette manière, les autres utilisateurs du forum peuvent savoir directement que cette question à trouvé une réponse.

Amicalement, SharpMao
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
15 mai 2007 à 10:19
Je valide pour lui

<hr />
-Blog-
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 mai 2007 à 10:34
Mai j'ai toujours du mal à utiliser ce qui suit:
int recu;
int i;
int nd;
char *ptr;
char[] bufferT =
new
char [65536];

for(ptr=bufferT
+nd*5,i=0,i<5;i++,ptr++)
{*ptr=recu[2*i] +recu[2*i+1];}

Merci.
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
15 mai 2007 à 10:44
Comme je l'ai déjà dis, je ne suis pas un pro du C, explique-moi en détail ce qu'est censé faire le code suivant, et je pourrai t'aider.

Juste un détail, recu est déclaré comme un int, et tu fait recu[2*i] comme si c'était un tableau ??

Amicalement, SharpMao
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 mai 2007 à 10:52
Sisi,c'est un tableau.Au fait c'est un pointeur qui parcours un tableau (par 5).
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
15 mai 2007 à 11:05
Il manque quelque chose entre la déclaration des variables et le début de la boucle, non ?


Et que fait tu avec ptr après l'avoir assigné dans la boucle ?


Désolé pour ces question, mais plus j'en saurai, mieux je pourrai t'aider.

Amicalement, SharpMao
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 mai 2007 à 11:16
Au fait je transfert un fichier si je recoit 10,je fait un test:
int nRecu;
int recu;
if(nRecu==10){
int i;
int nd;
char *ptr;
char[] bufferT =
new
char [65536];

for(ptr=bufferT
+nd*5,i=0,i<5;i++,ptr++)
{*ptr=recu[2*i] +recu[2*i+1];}
.......
}

Merci.
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
15 mai 2007 à 11:25
Donc si j'ai bien compris tu fais un transfert de fichier, et à chaque fois que tu as recu 10 bytes, tu mets à jour les 5 charactères suivants de ton buffer ?

Amicalement, SharpMao
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 mai 2007 à 11:30
exactement.
0
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
15 mai 2007 à 11:53
Merci.
0
Rejoignez-nous