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 :

Liste et tableau [Débutant]


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Points : 7
    Points
    7
    Par défaut Liste et tableau
    Yo,

    si j'ai bien compris, en C#, les listes et les tableaux ne permettent de stocker que des données de même type ?

    Si c'est bien ça. Comment ils programment les logiciels de comptabilités ?
    La compta c'est mettre des chiffres dans des cases. Or ces chiffres sont forcément rattachés à une date par exemple (donc minimum 2 types différents).
    J'ai pas compris la gamberge là

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 318
    Points : 13 087
    Points
    13 087
    Par défaut
    Bonjour,
    Un "type" ce n'est pas forcément une chaîne ou un entier.
    Tu peux très bien déclarer une classe avec plusieurs membres (ou propriétés), puis déclarer une collection (tableau, liste, dictionnaire...) d'objets de cette classe (ou de classe dérivée, vive le polymorphisme !).
    Cette classe peut même avoir un (ou plusieurs) membre(s) de type collection d'une autre classe, et ainsi de suite.

    Tatayo

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    oui mais dans ce cas, je cré plusieurs listes ou tableaux
    Par exemple, j'aimerai pouvoir créer une liste ou un tableau avec 3 colonnes (numéro, texte, numéro), et quand je supprime une ligne, je supprime donc 3 données d'un coup. Car je veux que chaque ligne soit liée entre elles.

  4. #4
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 910
    Points : 1 930
    Points
    1 930
    Par défaut
    Quel problème cherches-tu à résoudre ? As-tu du code à nous montrer pour qu'on puisse te guider ?

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 318
    Points : 13 087
    Points
    13 087
    Par défaut
    Citation Envoyé par Bad Bond Voir le message
    oui mais dans ce cas, je cré plusieurs listes ou tableaux
    Par exemple, j'aimerai pouvoir créer une liste ou un tableau avec 3 colonnes (numéro, texte, numéro)
    Pourquoi plusieurs listes ?
    Tu peux créer une classe avec 3 membres (numéro, texte, numéro) et une liste d'instances de cette classe.
    Honnêtement je ne comprends pas où ça coince.

    Tatayo.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    J'ai pas vraiment commencé à coder.
    J'essaie de raisonner en amont pour voir si c'est faisable de la façon dont je l'imagine.

    en gros, je veux que mon programme puisse créer des listes avec des données renseignées par l'utilisateur
    Nom : exemple.jpg
Affichages : 34
Taille : 17,2 Ko

    en jaune, ce qu'on peut modifier, supprimer, etc... sachant que chacune des données d'une ligne sont liées entre elles.

    Et bah je pensais le faire avec IListe au début.

  7. #7
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 910
    Points : 1 930
    Points
    1 930
    Par défaut
    Tout est possible, tout est réalisable, c'est le jeu de la vie !

    Blague à part, il y a différentes approches pour faire les choses. Il existe déjà en .Net des outils pour faire ce genre de choses, comme les DataTable. Mais ce que tu sembles vouloir faire pourrait aussi se faire avec des macros dans Excel. Et si tu veux créer une interface graphique c'est encore un autre niveau de complexité par rapport à la gestion des données seules. J'ai l'impression que tu n'a pas encore beaucoup d'expérience en programmation et que tu as du mal à avoir les idées claires à ce sujet.

    Peux-tu nous donner un peu plus de contexte sur ta situation ? Pourquoi veux-tu créer cette application ? Quelles données vont être gérées ? Qui va l'utiliser ? Comment seront sauvegardées les données saisies ?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    à la base je me demandais pourquoi les logiciels de comptabilité dans les cabinets d'expertises comptables buggaient autant.
    Peut être l'ajout de fonction sensé rendre l'utilisation plus simple, mais j'en suis pas convaincu

    Donc je me suis dit je vais en faire un.
    Suffit de générer des données qu'on stock. Et il faut pouvoir les modifier facilement.

    L'interface est très sommaire, mais il en faut un je suis d'accord.

    Je me suis dirigeais vers C#, car parait-il que le célèbre "quadratus" est codé avec ce langage.

    Oui, je suis débutant en programmation. J'ai les notions de bases, on va dire, et j'ai lu et regardé plusieurs tutoriels.

    plus simplement pour répondre à tes questions
    Peux-tu nous donner un peu plus de contexte sur ta situation ? je veux juste comprendre la difficulté de la création des logiciels de comptabilité
    Pourquoi veux-tu créer cette application ? Pour me challenger, et vérifier la difficulté.
    Quelles données vont être gérées ? celles que je rentrerai dans le programme
    Qui va l'utiliser ? Moi
    Comment seront sauvegardées les données saisies ? Automatiquement si possible, j'en suis pas encore là

  9. #9
    Membre émérite
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    Janvier 2014
    Messages
    655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 655
    Points : 2 336
    Points
    2 336
    Par défaut
    Bonjour,

    Tu te doutes bien que si les Listes (et les Collections en général) étaient aussi limitées, le C# serait inutilisables.

    Il y a pour tous les gouts, toutes les utilisations, tu as l'embarras du choix. Tu finiras la plupart du temps par créer des classes qui représentent des données. Mais vu que ton but est un logiciel de gestion, il te faudra alors appliquer un certain niveau d'abstraction. C'est à dire que les structures que tu vas gérer seront créer par les utilisateurs. Rien de bien méchant en soit mais pour un débutant, ça peut paraitre obscur.

  10. #10
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 910
    Points : 1 930
    Points
    1 930
    Par défaut
    Je ne saurais dire spécifiquement "pourquoi les logiciels de comptabilité dans les cabinets d'expertises comptables bugg[]ent autant", n'ayant jamais eu l'occasion d'en utiliser (es-tu un comptable avec une expérience tragique concernant les logiciel de comptabilité ?). Mais de façon générale, créer un logiciel professionnel répondant à un besoin qui justifie une rémunération est une entreprise de longue haleine, complexe et sujet à erreur, qui requiert habituellement un grand nombre de personne ; on peut être surpris parfois comment une fonctionnalité qui paraît simple se complexifie grandement lorsqu'on ajoute les contraintes nécessaires à son fonctionnement correct (gestion des erreurs, authentification et autorisation, échanges réseau, sauvegarde des données...). De plus, il faut associer une compétence technique (développement) et une compétence métier (ici, une connaissance approfondie de la comptabilité).

    Il ne te sera pas possible à toi seul de recréer un logiciel de comptabilité comme Quadratus. Par contre j'encourage totalement l'expérimentation et la recherche de la connaissance ; tu devrais trouver sur ce site tout ce qui est nécessaire pour débuter et tu pourras obtenir de l'aide de la communauté quand tu auras des questions.

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    oui je suis comptable, et je suis pas traumatisé. Faut pas exagérer.
    Je sais bien que créer un logiciel comme quadratus tout seul c'est pas possible. Surtout pour moi.
    Mais créer juste les bases d'un logiciel de compta (la saisie par exemple), ça me parait possible.

    Mais pour répondre à ma question initiale : les fonctions List et Array, en C#, sont forcément d'un type spécifique ?

  12. #12
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 282
    Points : 6 738
    Points
    6 738
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Bad Bond Voir le message
    Mais pour répondre à ma question initiale : les fonctions List et Array, en C#, sont forcément d'un type spécifique ?
    Plusieurs réponses ont déjà été données. Mais je vais tenter une autre façon de répondre :
    Oui tu ne peux mettre qu'un seul type dans une liste en c#, mais un type peut être composé de plusieurs choses. Par exemple tu peux créer un type qui contient une date, un numéro et une chaîne de caractère.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  13. #13
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 827
    Points : 5 666
    Points
    5 666
    Par défaut
    Si tu parles du logiciel Cegid Quadratus, il s'agit en réalité de plusieurs applications dont une de compta, et de quelques API et autres projets gravitant autour.
    Mais cet ERP n'a pas été écrit en C#, qui n'en était qu'a ses début lorsque le projet a débuté, mais en Visual Basic.

    Mais VB ou C#, mise à part quelques nuances dans la syntaxe et l'indexation, une liste demeure une liste.
    C'est à dire un tableau dont les éléments sont tous du même type (en théorie) et auxquels ont accède via un indice numérique.

    En pratique, puisqu'en C# tout est objet, je vais contredire mes collègues et affirmer que tu peux déclarer une liste d'objets et y mettre absolument tout ce que tu veux (même si je le déconseille fortement) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    List<object> something = [1, "A", new Dummy(), true, false, null, 3.14, new DateOnly(2025,1,2)];
    foreach (object item in something)
    {
        Console.WriteLine(item);
    }
    Affiche ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    1
    A
    Consolecs8.Dummy
    True
    False
     
    3,14
    02/01/2025
    Mais puisque ton objectif est de lier des données entres-elles, il convient de regrouper ces données dans un objet Ecriture ensuite tu pourra créer une liste de Ecriture.
    Mais à te lire, il est clair que tu ne maîtrise pas les base de la programmation (les listes, c'est vraiment basique).
    Donc avant toute chose, avant d'attaquer ton projet, il va falloir revoir les bases.
    Une fois les bases acquises, tu pourras te former aux objets.
    EDIT : J'ai oublié d'écrire qu'il faut aussi gérer correctement une base de données.
    Et seulement une fois ces concepts maitrisés, tu pourras t'attaquer à la création d'un mini logiciel.

    Un logiciel de comptabilité, c'est pas évident à programmer.
    Rien que la saisie, que tu n'imagines pas si compliquée, est en réalité très complexe (rien que sur les données que tu donnes en exemples, il manque les notions de débit et de crédit).
    Déjà, parce qu'en règle générale, la comptabilité, n'est pas le métier du développeur, on lui donne des consignes et il tente de les appliquer.
    Ensuite, parce que les règles changent d'une année à l'autre (des comptes apparaissent et d'autres disparaissent).
    Enfin, parce que chaque cabinet fonctionne de manière différente (ce qui peut être considéré comme un bug par un cabinet peut en réalité être une spécification donnée par un cabinet qui a fait un gros chèque pour l'avoir).

  14. #14
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 282
    Points : 6 738
    Points
    6 738
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par popo Voir le message
    En pratique, puisqu'en C# tout est objet, je vais contredire mes collègues et affirmer que tu peux déclarer une liste d'objets et y mettre absolument tout ce que tu veux (même si je le déconseille fortement)
    Ha purée oui effectivement tu as raison. C'est une pratique qu'on ne fait jamais, on finit donc par oublier qu'on peut le faire.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  15. #15
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 318
    Points : 13 087
    Points
    13 087
    Par défaut
    Bonjour,
    Citation Envoyé par popo Voir le message
    En pratique, puisqu'en C# tout est objet, je vais contredire mes collègues et affirmer que tu peux déclarer une liste d'objets et y mettre absolument tout ce que tu veux (même si je le déconseille fortement) :
    Pour être vraiment clair, dans une liste de type T, tu peux mettre des instances de T ou de toute classe qui dérive (directement ou pas) de T (polymorphisme).
    Et comme tous les types en C# dérivent (implicitement) du type objet, avec une liste d'objets tu peux mettre tout ce que tu veux.

    Mais effectivement ça devient vite le Bazard à gérer.

    Tatayo.

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 23
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par r0d Voir le message
    Plusieurs réponses ont déjà été données. Mais je vais tenter une autre façon de répondre :
    Oui tu ne peux mettre qu'un seul type dans une liste en c#, mais un type peut être composé de plusieurs choses. Par exemple tu peux créer un type qui contient une date, un numéro et une chaîne de caractère.
    Ok merci
    comme ça c'est clair

    Citation Envoyé par popo Voir le message
    Si tu parles du logiciel Cegid Quadratus, il s'agit en réalité de plusieurs applications dont une de compta, et de quelques API et autres projets gravitant autour.
    Mais cet ERP n'a pas été écrit en C#, qui n'en était qu'a ses début lorsque le projet a débuté, mais en Visual Basic.

    Mais VB ou C#, mise à part quelques nuances dans la syntaxe et l'indexation, une liste demeure une liste.
    C'est à dire un tableau dont les éléments sont tous du même type (en théorie) et auxquels ont accède via un indice numérique.

    Mais puisque ton objectif est de lier des données entres-elles, il convient de regrouper ces données dans un objet Ecriture ensuite tu pourra créer une liste de Ecriture.
    Mais à te lire, il est clair que tu ne maîtrise pas les base de la programmation (les listes, c'est vraiment basique).
    Donc avant toute chose, avant d'attaquer ton projet, il va falloir revoir les bases.
    Une fois les bases acquises, tu pourras te former aux objets.
    EDIT : J'ai oublié d'écrire qu'il faut aussi gérer correctement une base de données.
    Et seulement une fois ces concepts maitrisés, tu pourras t'attaquer à la création d'un mini logiciel.

    Un logiciel de comptabilité, c'est pas évident à programmer.
    Rien que la saisie, que tu n'imagines pas si compliquée, est en réalité très complexe (rien que sur les données que tu donnes en exemples, il manque les notions de débit et de crédit).
    Déjà, parce qu'en règle générale, la comptabilité, n'est pas le métier du développeur, on lui donne des consignes et il tente de les appliquer.
    Ensuite, parce que les règles changent d'une année à l'autre (des comptes apparaissent et d'autres disparaissent).
    Enfin, parce que chaque cabinet fonctionne de manière différente (ce qui peut être considéré comme un bug par un cabinet peut en réalité être une spécification donnée par un cabinet qui a fait un gros chèque pour l'avoir).
    Les règles comptables ne changent pas tous les ans. Y'a déjà le droit, dont la fiscalité, qui le fait très bien alors si t'en rajoute... plus personne fera ce métier et un bilan ne voudra plus rien dire.
    Je sais bien que programmeur c'est un métier.
    Après pour apprendre les bases, il faut selon moi se lancer à un moment ou un autre

    merci pour les infos. Pour moi c'est plus clair.

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

Discussions similaires

  1. Transformer une liste en tableau
    Par basket dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 07/09/2006, 17h01
  2. [Tableaux] Liste et tableau de PHP
    Par jive dans le forum Langage
    Réponses: 1
    Dernier message: 03/09/2006, 16h01
  3. liste ou tableau ?
    Par CaptainChoc dans le forum Développement 2D, 3D et Jeux
    Réponses: 12
    Dernier message: 17/07/2006, 20h39
  4. difference entre vector, deque, list et tableau
    Par salseropom dans le forum SL & STL
    Réponses: 8
    Dernier message: 03/01/2005, 14h35
  5. [langage] random sur liste ou tableau
    Par martijan dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2003, 15h47

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