IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Tableaux de bytes


Sujet :

C#

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut Tableaux de bytes
    Bonjour,
    J'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    private byte[][] bytearray;
    bytearray = new byte[5][3];
    J'ai un probleme sur l'initialisation de ce tableau de bytes a 2 dimensions, j'ai l'erreur suivante :
    Erreur 1 Spécificateur de rang non valide*: ',' ou ']' attendu
    Je faisait du java avant et ca marche niquel, j'essaie de mettre a C# et premier blocage

    Merci de votre aide.

  2. #2
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Bonjour,

    Essaye ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private byte[,] bytearray= { {5}, { 3} };

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Jmichou972 Voir le message
    Bonjour,

    Essaye ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private byte[,] bytearray= { {5}, { 3} };
    Hmm,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	1	Impossible d'initialiser un type 'byte' avec un initialiseur de collection, car il n'implémente pas 'System.Collections.IEnumerable'

  4. #4
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Citation Envoyé par Jmichou972 Voir le message
    Bonjour,

    Essaye ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    private byte[,] bytearray= { {5,3} };
    Autant pour moi. Là ça devrait être mieux. Et au pire, t'as la doc msdn :
    http://msdn.microsoft.com/fr-fr/libr...z4(VS.80).aspx

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Merci pour la doc ! nickel.
    Cependant maintenant ca se complique un peu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private byte[,] array;
    array = new byte[,] { { 5, 3 } };
    		for (int i = 0; i < 1000; i++)
    		{
    			for (int j = 0; j < array[i].Length; j++)
    			{
    				array[i,j] = 1234;
    			}
    		}
    Donc voila, ma question comment faire dans les itératons comme celles dessus ? Je ne trouve pas pour les tableaux a 2 dimensions. :S

    Merci

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    peut-etre commencer par lire un cours sur C#... etc...

    Parce que bon, on s'improvise pas à faire des choses "simples" sans connaitre
    les bases du langage, si ce n'est les bases de la programmation !!!

    J'remplis pas un tableau de 3 élements avec 1000 éléments

    Par contre, si j'initialise mon tableau pour contenir 1000 éléments, je pense que je peux m'autoriser à le remplir avec 1000 éléments (enfin si j'ose)
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Je sais le faire avec un tableau a 1 dimension mais dans ce cas une boucle aurait suffit, mais le problèmes c'est que je ne sais pas comment faire avec des tableaux a 2 dimensions, comment ca marche ces tableaux dans les itérations plus précissement :/
    Je viens du java en en java ca marchait parfaitement.

  8. #8
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Si tu sais le faire avec un tableau à 1 dimension, ce n'est pas plus compliqué avec N dimensions. Au lieu d'une seule boucle for, tu en auras N imbriquées afin de parcourir l'intégralité des "cases".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    byte[,] array = new byte[10, 5];
    for (int i = 0; i < array.GetLength(0); i++)
    {
        for (int j = 0; j < array.GetLength(1); j++)
        {
            array[i, j] = maValeur;
        }
    }
    Si le tableau et petit et que les valeurs sont connues, tu peux éventuellement passer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte[,] array = { { 1, 2, 3 }, { 4, 5, 6 } };
    afin d'avoir la matrice
    1 2 3
    4 5 6

    Avec un peu de recherche via Google on trouve ceci au passage
    Pas de questions techniques par MP

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Bonjour et merci de ta réponse StormimOn, cela fonctionne parfaitement.

    Derniere question, comment tu fais pour récupérer une valeur de la matrice ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private byte[,] array = new byte[10, 5];
        public byte[] GetRandomValue()
           {
             return array[Rnd.Next(10)];
     
           }
    et donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return array[Rnd.Next(10)];
    Erreur 6 Impossible de convertir implicitement le type 'byte' en 'byte[]'
    J'ai besoin de retourner une seule dimension du tableau, comment faire ?

    Merci de votre aide.

  10. #10
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Tu ne peux pas faire ça avec une matrice. Tu es obligé de parcourir les éléments et construire un nouveau tableau dans ce cas de figure. A moins d'utiliser un tableau de tableau (jagged array).
    Pas de questions techniques par MP

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 48
    Points : 41
    Points
    41
    Par défaut
    Hmm je vois.
    Sinon est ce possible de faire les tableaux a double dimension comme en C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    byte[][] array = new byte[10][5];
    Ça doit exister ça en C# non ? Ça réglerai mon léger problème mais est ce que ça marchera pour mes itérations ?

  12. #12
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    Bien sûr que ça existe, c'est un tableau de tableau comme je l'ai mentionné plus haut. On parle aussi de tableau en escalier.

    Un peu de lecture : http://msdn.microsoft.com/fr-fr/library/2s05feca.aspx

    Tu devrais lire des cours sur .Net, parce que ça fait partie des bases ce genre de question.
    Pas de questions techniques par MP

Discussions similaires

  1. Comparer 2 tableaux de Bytes
    Par Dalidou dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 30/03/2009, 09h40
  2. comparer 2 tableaux de bytes en vb.net
    Par niceen dans le forum VB.NET
    Réponses: 6
    Dernier message: 29/04/2008, 19h03
  3. Convertion tableaux de bytes
    Par frouge dans le forum Langage
    Réponses: 14
    Dernier message: 16/10/2006, 23h47
  4. Réponses: 4
    Dernier message: 21/09/2004, 21h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo