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 :

Manipulation de chaines.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 46
    Par défaut Manipulation de chaines.
    Bonjour tout le monde,

    Je vous expose mon problème, j'ai récupérer les données d'un capteur qui sont des nombres en hexadécimale. Mon capteur me rend 128 données, de 1 a 128. les données sont de cette forme par exemple 123.1230 456.32 4782.25 256 147 2584.25 142.1478 9.23 147.23 ..........

    moi je veux filtrer ces données en éliminant les 21 premières données et les 23 dernières données. et par exemple les données 29 à 23 aussi je veux les éliminés.

    j'espère que je suis clair sur ma question.

    Merci d'avance.

  2. #2
    Membre Expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Par défaut
    Salut,

    un truc simple c'est de splitter sur ton séparateur et de boucler dessus en vérifiant que tu es hors plage à éliminer.
    Pour être un peu moins bourrin tu pourrais commencer ton parcours directement après la plage initiale, et le finir avant la plage finale.
    Exemple (à quelques iota près) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int total = 128;
    string values = "123.12 456.23 ...";
    string valuetab = values.Split(' ');
    int start = 21;
    int stop = max -23;
     
    for (int current = start; current<stop ; current++) {
      // on vérifie qu'on est pas dans la(les) plage(s) à éliminer, ici 50 à 100
      if (current < 50 && current > 100) {
        // ici valuetab[current] est à considérer
      }
    }

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 46
    Par défaut
    Bonjour Mr Jopopmk,

    Je crois que j'ai oublié un petit détail, c'est que les valeurs que je reçois de mon capteur change a chaque fois que je demande une mesure. Donc se sont des données qui change a chaque mesure pour les données que j'ai données auparavant c'est juste un exemple.

    Merci beaucoup.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 46
    Par défaut
    Et je programme en visual basic

  5. #5
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Même si ce n'étiat pas du vb, le conseil était bon.
    Et le code lisible...

    Le Split() pour diviser ta chaîne et parcourir les élément de ta liste nouvellement créée pour sélectionner celle qui t'intéresse.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 46
    Par défaut
    bonjour,

    Pourrez vous m'aider a le faire en VB.

    Merci d'avance.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 46
    Par défaut utilisation de chaine
    Bonjour tous le monde,

    J'expose mon problème, j'ai une chaine de données

    57.75 54.4375 20.3125 29.125 51.875 21.1875 12.125 27.0625 52.6875 20.375
    10.4375 9.625 9.375 9.1875 9 8.6875 9.5 9.3125 9 11.5
    21.1875 22.625 22.8125 22.9375 21.9375 23.875 21.75 23.0625 22.5625 21.8125
    de 30 valeurs

    je veux supprimer les 5 première valeurs et de la 12 eme a la 15 eme valeurs et de la 25 a la 30 eme valeurs.

    Merci pour votre aide.

  8. #8
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Salut

    Comment as tu defini ta chaine ?

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 46
    Par défaut
    Voila le programme,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     Dim Data As String
            Dim T(200) As String
     
            Data = spectro.dataline(average:=1, count:=1)
            'Data = Left(Data, Len(Data))
            'Data = Right(Data, Len(Data))
            Console.Write(Data & " ")
     
            T = Split(Data, Data(3)
            Console.Write(T)

    Data c'est ma chaine, en faite ce sont les données d'un capteur donc les valeurs change a chaque fois j'appel le capteur pour qu'il me donne des données"Data"

  10. #10
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Par défaut
    Le temps de répondre, le sujet a été déplacer dans celui ci ... :S

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        Dim chaine As String = "57.75 54.4375 20.3125 29.125 51.875 21.1875 12.125 27.0625 52.6875 20.375 10.4375 9.625 9.375 9.1875 9 8.6875 9.5 9.3125 9 11.5 21.1875 22.625 22.8125 22.9375 21.9375 23.875 21.75 23.0625 22.5625 21.8125"
        Dim i As Integer = 1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
     
            For Each elements As String In chaine.Split(" ")
                If i > 5 And i < 12 Or i > 15 And i < 25 Then
                    MsgBox(elements)
                End If
                i = i + 1
            Next
     
        End Sub

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2015
    Messages : 46
    Par défaut
    Merci beaucoup pour votre réponse.
    J'explique encore un petit peu,

    les données que je vous ai donnés avant, je les reçois comme une chaine que j'ai appellé Data.
    Donc j'utilise pas la chaine comme nombre parce que je reçois 128 valeur du capteur,

    avant, je vous ai juste données un exemple de valeurs pour dire quelle sorte de valeurs que je reçois.

  12. #12
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Juillet 2013
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France, Lot et Garonne (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2013
    Messages : 34
    Par défaut
    Si je comprend bien, vous recevez non pas 30 mais 128 valeurs qui peuvent être des décimales et sont séparées par des espaces le tout dans une variable "Data" ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        Dim i As Integer = 1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
     
            For Each elements As String In Data.Split(" ")
                If i > 5 And i < 12 Or i > 15 And i < 25 Or i >30 Then
                    ' Traitement de chaques éléments récupérés, par exemple en affichant un msgbox :
                    MsgBox(elements)
                End If
                i = i + 1
            Next
       End Sub

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

Discussions similaires

  1. Manipulation de chaines
    Par tchoukapi dans le forum Shell et commandes GNU
    Réponses: 12
    Dernier message: 04/09/2006, 17h41
  2. [D7] Manipulations de chaines
    Par jer64 dans le forum Delphi
    Réponses: 2
    Dernier message: 21/07/2006, 22h16
  3. [PLSQL] Manipulation des chaines.
    Par zero d dans le forum Oracle
    Réponses: 5
    Dernier message: 14/12/2005, 18h27
  4. Réponses: 4
    Dernier message: 20/08/2004, 10h59
  5. Fonctions de manipulation des chaines et des dates
    Par Fares BELHAOUAS dans le forum Débuter
    Réponses: 3
    Dernier message: 09/11/2002, 22h43

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