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

VB.NET Discussion :

classe contenant un List(of Integer)


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de sibama
    Profil pro
    Inscrit en
    Août 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 150
    Par défaut classe contenant un List(of Integer)
    Bonjour,

    Voici mon problème:
    Je scrute des fichier où pour chaque ligne, j'ai des données que j'archive dans une classe.
    Certaines lignes peuvent être dupliquées, et donc dans l'endroit où je stoke l'adresse, en général je n'ai qu'un integer, mais il se peut que j'ai besoin d'avoir une List (et je voudrais éviter ce que j'ai toujours fait jusqu'à présent: mettre dans un String mes différents integer séparés par un "§" ).

    Je voudrais que ma classe ressemble à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Class MesLignes
        ' Cette classe definit l'ensemble des données associées à la définition des séquences/Lignes
     
        Private _Adresses As New List(Of Integer)
        Private _Numero As Integer
        Private _Equation As String
    Bon, la, ça se complique pour moi :
    - Comment je fais le constructeur (je crois que c'est le terme pour le NEW) de cette classe, je sais faire pour le integer et le string, mais pour le List(Of???
    - Comment je fait l'accesseur (je crois aussi que c'est le nom du Property avec le Get et le Set) pour le List(of?
    - Est-il possible pour le code appelant la classe que lorsqu'on ajoute une référence à la classe (Montruc.add()) je passe l'adresse comme un Integer tout bête, et c'est dans ma classe que je fais le Add à _Adresses et que quand j'interroge la classe.Adresses je récupère la "list(of" complète
    - Comment je fais, lorsqu'une référence existe déjà (le Numero et l'Equation sont déjà créés avec un integer déjà dans Adresses), pour ne rajouter qu'une Adresse à _Adresses?
    - Est-ce que je pourrais faire un Adresses.count à partir du code appelant la classe?
    - Comment je "pointe", à partir de mon code principal sur un ou des éléments de Meslignes.Adresses?
    - Est-ce que je peux faire un truc du genre For each maDonnee as MesLignes where Adresses contient une certaine valeur? Cela me permetrais de parcourir toutes les référence dont au moins un enregistrement de Adresses contient la valeur recherchée.
    - Je vais surement avoir un champs suplémentaire dans MesLigne, du genre Boolean qui est à 1 si la ligne est unique et à 0 si elle est utilisée plusieurs fois. Est-il possible d'avoir un bout de code dans ma classe MesLignes qui lors de l'ajout d'une adresse, s'il y en a plusieurs, mette ce flag à 0, mais que je puisse aussi, du code appelant la classe, forcer ce flag comme je veux?

    Beaucoup de questions et j'espère bientot au moins une réponse.
    Merci à vous.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    vouloir remplacer une string étrange par un list(of ) c'est déjà bien oui

    par contre le reste j'ai pas tout compris
    ca part d'un bon sentiment en tout cas, écrire de la POO sur un langage OO c'est en effet plus pratique


    détaille plutot ce qu'il y a dans ton fichier et ce que tu veux en faire, pas ce que tu souhaites coder

    là ce que j'ai pu comprendre c'est que tu as un fichier, que tu lis ligne par ligne (quid des colonnes ?)
    et qu'à la fin tu veux un variable qui contiennent toutes les lignes, et pour chaque ligne avoir les infos contenu dedans, sachant que l'identifiant peut etre répété plusieurs fois et donc que c'est ce qui va avec que tu veux mettre dans un list of
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé Avatar de sibama
    Profil pro
    Inscrit en
    Août 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 150
    Par défaut
    Ok Pol63 (j'étais habitué à SPEROT51 moi ), voici mon problème:
    je lis deux fichiers qui contiennent des lignes de la forme "LettreNombre.chainedecaractères", LettreNombre n'est pas forcemment unique (dans un fichier donné), chainedecaractères non plus.
    Le but du programme est de faire un diff entre les 2 fichiers de la forme:
    ┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
    │ DETAIL DES MODIFICATIONS DES VALEURS │
    ├───────────────────────────────────────────────────────┬──────────────┬───────────────────────────────────────────────────────┤
    │ PROGRAMME REFERENCE │ STATUT │ PROGRAMME MODIFIE │
    ├───────────────────────────────────────────────────────┼──────────────┼───────────────────────────────────────────────────────┤
    │ Valeurs V1 à V10 │ IDENTIQUES │ Valeurs V1 à V10 │
    ├───────────────────────────────────────────────────────┼──────────────┼───────────────────────────────────────────────────────┤
    │ V11 = 20 │ MODIFIEE │ V11 = 21 │
    ├───────────────────────────────────────────────────────┼──────────────┼───────────────────────────────────────────────────────┤
    │ Valeur V12 │ IDENTIQUE │ Valeur V12 │
    ├───────────────────────────────────────────────────────┼──────────────┼───────────────────────────────────────────────────────┤
    │ V13 = 0 │ MODIFIEE │ V13 = 1289 │
    │ V14 = 0 │ MODIFIEE │ V14 = 7 │
    │ V15 = 0 │ MODIFIEE │ V15 = 12 │
    │ V16 = 0 │ MODIFIEE │ V16 = 818 │
    │ V17 = 0 │ MODIFIEE │ V17 = 258 │
    │ V18 = 0 │ MODIFIEE │ V18 = 1 │
    │ V19 = 0 │ MODIFIEE │ V19 = 1488 │
    │ V20 = 0 │ MODIFIEE │ V20 = 50 │
    │ V21 = 0 │ MODIFIEE │ V21 = 15608 │
    ├───────────────────────────────────────────────────────┼──────────────┼───────────────────────────────────────────────────────┤
    │ Valeurs V22 à V24 │ IDENTIQUES │ Valeurs V22 à V24 │
    ├───────────────────────────────────────────────────────┼──────────────┼───────────────────────────────────────────────────────┤
    │ │ AJOUTEE │ V25 = 0 │
    (ici c'est un exemple d'une partie de mon code qui fonctionne déjà car un peu plus simple, bon ok, la ça ne rend pas bien, mais avec la bonne police... ).

    Donc la chose comme je la vois:
    Lire les fichiers et classer les données de la manière suivante dans un list(Of MaClasse) avec Maclasse:
    - une donnée integer avec Nombre (on élimine Lettre)
    - une donnée string avec chainedecaractères
    - un boolean pour dire si la chainedecaractères est unique ou pas
    - une list(of integer) avec la(les) ligne(s) du fichier dans laquelle chainedecaractères est présente
    - probablement un donnée pour dire si la chainedecaractères est présente dans u fichier et pas dans l'autre quelle est la ligne unique la plus proche.

    D'un point de vue code, cela veut dire lire la ligne, regarder si elle existe déjà:
    - si elle n'existe pas, créer la list(Of MaClasse) avec un .add
    - si elle existe déjà, ne créer qu'une nouvelle donnée dans le List(of integer) à l'intérieur de MaClasse
    Plus loin je vais avoir besoin d'interroger le List(of integer) à l'intérieur de MaClasse d'ou mes questions dans le premier POST sur la manière de l'interroger.

    Voilà, j'espère que c'est un peu plus clair maintenant.

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    c'est un morceau de ton fichier le truc quadrillé ? si oui le formatage est étrange, et je ne comprends pas mieux ce que tu lis dedans

    et si on repartait encore plus en arrière, le truc qui génère ce fichier, il aurait un autre moyen de communiquer avec toi ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé Avatar de sibama
    Profil pro
    Inscrit en
    Août 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 150
    Par défaut
    ci-dessous un extrait du genre de fichiers que je cherche à comparer:
    Pièce jointe 53415
    Par rapport à cet exemple, la partie Sxxxx peut être identique sur plusieurs lignes dans un même fichier, et l'équation (ce qui est après le premier ".") peut aussi être identique sur plusieurs Sxxxx (mais qui n'auront pas forcement le même numéro xxxx).
    Ainsi dans mon programme, je n'utilise pas la chaine de l'équation comme clef (car je ne peux pas garantir qu'elle est unique) ni le numéro de séquence non plus (même raison).
    Dans mon esprit, on aurait donc une list(of MaClasse) nomée Toto par exemple:
    Toto(0) contient les données de la première ligne de mon fichier BOOL
    Toto(1) la seconde, etc... (ce qui me permet de connaitre l'ordre de mes équations dans mon fichier)
    et:
    Toto(0).Numero = 5
    Toto(0).Equation= "R511=R472."
    Toto(0).Unique = True
    Toto(0).Adresse = Ici je devrais avoir l'indice du Toto_du_fichier_modifié où la chaine Toto(0).Equation est retrouvée (la ligne ayant pu être déplacée, supprimée, modifiée), mais si je la retrouve à plusieurs endroits dans le nouveau fichier, il faut que je les ais tous.
    ...

    Et ici le type de résultat attendu:
    Pièce jointe 53414
    J'espère que cela peut t'aider à comprendre un peu plus mon blabla...

Discussions similaires

  1. Liste des classes contenant "implements Nom_Classe"
    Par dalmasma dans le forum Général VBA
    Réponses: 8
    Dernier message: 11/05/2009, 16h36
  2. HashTable contenant des listes
    Par yjuliet dans le forum Langage
    Réponses: 12
    Dernier message: 05/10/2006, 10h19
  3. Réponses: 7
    Dernier message: 01/09/2006, 14h19
  4. Réponses: 10
    Dernier message: 10/01/2006, 14h14
  5. [css]problème d'attribution de classe dans deux listes
    Par Mitaka dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 24/11/2005, 18h05

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