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 :

Filtre sur RichTextBox - éviter les boucles [Débutant]


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur STC, systèmes de supervision
    Inscrit en
    Juin 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur STC, systèmes de supervision
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 58
    Points : 59
    Points
    59
    Par défaut Filtre sur RichTextBox - éviter les boucles
    Bonjour le forum,

    Je commence mon tout premier programme en VB (j'ai des bases en VBA) et j'ai besoin de vos lumières...

    Ce programme consiste à ouvrir un fichier texte dans un RichTextBox et puis à y mettre des filtres (même si des logiciels faits pour çà existent déjà).
    J'ai réussi à ouvrir mon fichier texte dans ma RichTextBox par contre pour les filtres çà se gâte...

    Actuellement, je passe par une boucle For mais c'est interminable (plus de 7 000 lignes) et je me demandais s'il n'existait pas à votre connaissance une solution simple et efficace pour éviter cette boucle.
    J'avais aussi imaginé mettre le contenu de cette RichTextBox dans une variable Tableau pour que les filtres soient reversible mais là encore, je ne sais le faire qu'en passant par une boucle et là encore c'est interminable... Voici le petit bout de code associé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Public EntireText(0) As String
        Private Sub MiseEnMemoire()
     
            Dim iter, i As Long
     
            iter = RichTextBox1.Lines.Length - 1
            ReDim EntireText(iter)
     
            For i = 0 To iter - 1
                EntireText(i) = RichTextBox1.Lines(i + 1)
                'EntireText(i) = ""
            Next
     
        End Sub
    Merci de votre aide!

  2. #2
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Hello,

    La propriété Lines d'un contrôle de type RichTextBox est déjà un tableau de String. Pas besoin donc de la parcourir pour le mettre dans un autre.
    Kropernic

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur STC, systèmes de supervision
    Inscrit en
    Juin 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur STC, systèmes de supervision
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 58
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    C'est toujours bon à savoir! Seulement, à partir du moment où on a posé un filtre et que certaines lignes ont été effacé, il n'y a plus moyen de les retrouver...
    çà me fait penser que je suis tombé sur la fonction Clone() tout à l'heure et qu'elle est applicable à mon cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EntireText = RichTextBox1.Lines.Clone()
    Il ne reste plus qu'à trouver comment mettre des conditions pour les filtres sans effectuer de boucle sur les lignes...

  4. #4
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Regarde du côté des collections (des listes dans ton cas). Avec linq, on peut les filtrer facilement (mais p-e linq peut aussi s'appliquer aux tableaux ?).
    Kropernic

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur STC, systèmes de supervision
    Inscrit en
    Juin 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur STC, systèmes de supervision
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 58
    Points : 59
    Points
    59
    Par défaut
    Merci Kropernic, c'est impeccable!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            RichTextBox1.Clear()
     
            Dim FilteredText = (From TheLines In EntireText
                           Where TheLines.Contains(StringToIgnore) = False).ToArray
     
            RichTextBox1.Lines = FilteredText

  6. #6
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ravi d'avoir pu aider
    Kropernic

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

Discussions similaires

  1. [SQL 2k8] Est ce possible d'éviter les boucles
    Par lerieure dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 11/04/2011, 10h41
  2. [C#] Events, éviter les boucles infinies
    Par levalp dans le forum Windows Forms
    Réponses: 50
    Dernier message: 02/12/2007, 15h12
  3. [MySQL] Chapitre, sous-chapitre & sous-sous-chapitre - éviter les boucles ?
    Par glork2007 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 07/03/2007, 10h49
  4. Filtre sur les données des 3 derniers mois?
    Par Arkalys dans le forum Access
    Réponses: 2
    Dernier message: 21/10/2005, 10h02
  5. [SQL - procStock ] optimisation du code (éviter les boucles)
    Par luimême dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/10/2005, 18h22

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