Tableau [Résolu]

Signaler
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010
-
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010
-
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

Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
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
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
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
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Merci.
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
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
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Je valide pour lui

<hr />
-Blog-
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

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.
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
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
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Sisi,c'est un tableau.Au fait c'est un pointeur qui parcours un tableau (par 5).
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
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
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

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.
Messages postés
1024
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
7 juin 2010
62
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
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

exactement.
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Merci.