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 :

récupérer un tableau multidimensionnel d'une méthode


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 57
    Par défaut récupérer un tableau multidimensionnel d'une méthode
    suite de mes péripéties (ici) avec les fonctions sur C#, je commençait a comprendre le fonctionnement, j'étais content ... jusqu'a devoir bosser avec un tableau multi dimensionnel...

    voici le code de ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    public class xlsx
    {
        static public double[] xlsx_read(string FilePath )
          {
                //string FilePath = "c:\\Anomalies.xlsx";
     
     
                FileInfo existingFile = new FileInfo(FilePath);
                using (ExcelPackage package = new ExcelPackage(existingFile))
                {
     
                    ExcelWorksheet worksheet = package.Workbook.Worksheets[1]; // cible la premiere feuille du classeur
                    int col = 1; 
                    var rowCnt = worksheet.Dimension.End.Row; //comptage des lignes
                    var colCnt = worksheet.Dimension.End.Column; //comptage des colonnes
                    double[,] maille = new double[rowCnt,8]; //matrice de 8 colonnes et de rowCnt lignes
                    //Console.WriteLine(rowCnt);
     
                    for (int row = 1; row < rowCnt; row++)
                    {
                        if (worksheet.Cells[row, col].Value != null)
                        {
                            maille[row, 1] = (double)worksheet.Cells[row, 1].Value;// remplissage des x
                            maille[row, 2] = (double)worksheet.Cells[row, 2].Value;// remplissage des y
                            maille[row, 3] = (double)worksheet.Cells[row, 3].Value;// remplissage des z
                            maille[row, 4] = (double)worksheet.Cells[row, 4].Value;// remplissage des g
                        }
                    }
                    Console.WriteLine(maille.Length);
                    return maille;
                }
     
          }
     
    }
    et il me sort que c'est impossible de convertir implicitement le type 'double[*,*]' en 'double[]'
    -_-
    une solution consisterait a faire un tableau pour x, un pour y etc ...
    mais pour le coup j'aimerais bien comprendre cette erreur

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 57
    Par défaut
    j'ai trouvé l'erreur pour l'histoire de la conversion, c'est au niveau de ma 4e ligne, faut remplacer double[] par double[,] tout simplement -_-

    mais j'arrive pas a récupérer les valeurs présentent dans ma variable "maille" depuis mon main

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2014
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 57
    Par défaut
    ça y est j'ai trouvé le truc ^^
    j'avais un soucis de porté de ma variable maille, au moment de mon return elle n'existe plus, du coup, je crée une variable au début de ma fonction que je rend égale à maille durant la lecture du fichier excel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    public class xlsx
    {
        static public double[,] xlsx_read(string FilePath )
          {
     
              double[,] maille;
                FileInfo existingFile = new FileInfo(FilePath);
                using (ExcelPackage package = new ExcelPackage(existingFile))
                {
     
                    ExcelWorksheet worksheet = package.Workbook.Worksheets[1]; // cible la premiere feuille du classeur
                    int col = 1; 
                    var rowCnt = worksheet.Dimension.End.Row; //comptage des lignes
                    var colCnt = worksheet.Dimension.End.Column; //comptage des colonnes
                    double[,] temp = new double[rowCnt,8]; //matrice temporaire de 8 colonnes et de rowCnt lignes
                    maille = temp;
                    //Console.WriteLine(rowCnt);
     
                    for (int row = 1; row < rowCnt; row++)
                    {
                        if (worksheet.Cells[row, col].Value != null)
                        {
                            maille[row, 1] = (double)worksheet.Cells[row, 1].Value;// remplissage des x
                            maille[row, 2] = (double)worksheet.Cells[row, 2].Value;// remplissage des y
                            maille[row, 3] = (double)worksheet.Cells[row, 3].Value;// remplissage des z
                            maille[row, 4] = (double)worksheet.Cells[row, 4].Value;// remplissage des g
                        }
                    }
                    //Console.WriteLine(maille.Length);
                    //Console.WriteLine(maille[1,1]);
     
                }
                return maille;
          }
     
    }
    ensuite dans le main il y a juste a faire une égalité entre une variable et ma fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double[,] a = xlsx.xlsx_read("C:\\test.xlsx");
    Console.WriteLine(a[2, 1]);
    au final j'ai fait un monologue mais si ça peut aider quelqu'un
    je crois que je commence a piger l'essence des méthode du c# ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Tableau multidimensionnel : accès à une dimension complète
    Par amundsen dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 29/12/2008, 17h34
  2. Récupérer le tableau $_POST aprés une redirection
    Par tintin72 dans le forum Langage
    Réponses: 5
    Dernier message: 14/03/2008, 09h37
  3. Tableau multidimensionnel dans une requète
    Par Mordoum dans le forum Requêtes
    Réponses: 4
    Dernier message: 04/06/2007, 17h20
  4. [C# 2.0] Tableau statique dans une méthode
    Par margagn dans le forum Framework .NET
    Réponses: 4
    Dernier message: 21/05/2007, 12h46
  5. récupérer un tableau PHP dans une fonction javascript
    Par aztec dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/05/2007, 22h11

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