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 :

récupérer un caractère [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Points : 12
    Points
    12
    Par défaut récupérer un caractère
    bonjour a vous !!
    donc je viens a vous car je voudrais récupérer un caractère.
    je voudrais récupérer la valeur qui se trouve dans la colonne Failed et la ligne dirs, comment faire??

    Total Copied Skipped Mismatch FAILED Extras
    Dirs : 888 2 886 0 0 68
    Files : 13688 19 13669 0 0 193
    Bytes :27316.935 g 205.0 k27288.935 g 0 0 1.811 g
    Times : 0:00:18 0:00:00 0:00:00 0:00:18

    Speed : 292083 bps.
    Speed : 16.713 mb/min.

    Ended : Fri Jun 14 15:20:06 2013

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Bonjour,

    Voici une façon de procéder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ' variable lignes pour test
        Dim lignes() As String = {"Total Copied Skipped Mismatch FAILED Extras", "Dirs : 888 2 886 0 0 68", _
                                  "Files : 13688 19 13669 0 0 193", "Bytes :27316.935 g 205.0 k27288.935 g 0 0 1.811 g", _
                                  "Times : 0:00:18 0:00:00 0:00:00 0:00:18", "Speed : 292083 bps.", _
                                  "Speed : 16.713 mb/min.", "Ended : Fri Jun 14 15:20:06 2013 "}
     
        Private Sub btnContient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnContient.Click
            For i As Integer = 0 To lignes.Count - 1
                If lignes(i).Contains("Dirs") Then
                    MsgBox("La valeur de Failed dans la ligne Dirs est : " & lignes(i).Split()(6) & " (ligne N° " & (i + 1).ToString & ")")
                End If
            Next
        End Sub
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    merci je vais essayer

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    alors j'ai un petit souci donc je vous montre mon code :

    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
    Imports System.IO
    Public Class Form1
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Try
                Dim lignes() As String = File.ReadAllLines("C:\Users....ligne.txt")
                Dim nbrlignes As Integer
     
                For nbrlignes = lignes.Length - 11 To lignes.Length - 1
                    MsgBox("ligne  " & nbrlignes & " : " & lignes(nbrlignes))
     
                Next nbrlignes
                Dim myString As String = lignes(2)
                Dim colFailed As String
                colFailed = myString.Substring(50, 2)
                MsgBox(colFailed)
     
            Catch ex As Exception
     
                MsgBox("Une erreur  ....")
            End Try
        End Sub
    End Class
    j'ai voulu utiliser la solution que tu m'as proposé mais mon tuteur ma dit qu'il veut que j'utilise substring, donc j'ai fait sa !!
    mais j'ai un souci, quand j'assigne une chaine de caractère à " Dim myString As String " il va tout de suite me trouver le mot ou la donnée que je veux,
    mais quand je lui indique la ligne dans fichier.txt la ou se trouve (Total Copied Skipped Mismatch FAILED Extras
    Dirs : 888 2 886 0 0 68
    Files : 13688 19 13669 0 0 193
    Bytes :27316.935 g 205.0 k27288.935 g 0 0 1.811 g
    Times : 0:00:18 0:00:00 0:00:00 0:00:18

    Speed : 292083 bps.
    Speed : 16.713 mb/min.

    Ended : Fri Jun 14 15:20:06 2013 )
    sois il me trouve autre chose ou il me donne rien . Que faire??

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par steph97139 Voir le message
    j'ai voulu utiliser la solution que tu m'as proposé mais mon tuteur ma dit qu'il veut que j'utilise substring
    tu peux dire à ton tuteur que split est conseillé sur ce genre de chose, c'est plus pratique, et split doit lui même faire substring pour nous

    split sert à découper un string en définissant quel est le séparateur (visiblement qu'on ne fournit pas le séparateur il décide que c'est l'espace le séparateur)

    si la ligne est "A B CC DDDD E FFF"
    split retourne un tableau de string de 0 à n
    ce tableau(0) contiendra A ... jusqu'à tableau(5) qui contiendra FFF

    à toi d'adapter à ton cas
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2013
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    ok d'accord je lui dirais !!
    eu je voulais vous dire que le petit tableau que je vous envoyé
    se trouve a la fin de mon fichier. Quand j'ai voulu afficher la 2ème ligne
    pour moi elle afficherai la 2ème ligne en partant 11dernières lignes.
    je sais pas si il y a une solution a mon problème?

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Points : 5 100
    Points
    5 100
    Par défaut
    Citation Envoyé par steph97139 Voir le message
    eu je voulais vous dire que le petit tableau que je vous envoyé se trouve a la fin de mon fichier. Quand j'ai voulu afficher la 2ème ligne pour moi elle afficherai la 2ème ligne en partant 11dernières lignes.
    je sais pas si il y a une solution a mon problème?
    Dans l'exemple que je t'ai donné, cela n'a pas d'importance puisqu'il s'agit d'une boucle qui part de la première à la dernière ligne.
    La seule chose à vérifier est que l'identifiant "Dirs" n'est pas déjà utilisé en amont dans le fichier.
    Si c'est le cas il faut faire une première boucle jusqu'à "Total Copied Skipped Mismatch FAILED Extras" et ensuite rechercher "Dirs".

    Pour ce qui concerne le "Substring"
    Il ne semble pas que ton fichier soit formatté avec des zones de longeur fixe. (ou alors tu as oublié de le dire)
    - dans ton code tu as 23 caractères dans la ligne Dirs et tu vas chercher le 50ème
    - 2èmement si tes valeurs changent la valeur "FAILED" ne sera pas forcement au même endroit.
    Ex:
    Dirs : 888 2 886 0 0 68 -> 19ème position
    Dirs : 2158 11 2130 14 5 52 -> 23ème position

    Autre remarque : ce n'est pas une bonne idée de démarrer 11 lignes avant la fin. Si un jour tu as des lignes supplémentaires ton traitement ne fonctionne plus.

    Pour traiter tous les cas de figure. (La ligne "Total Copied Skipped Mismatch FAILED Extras" devant se présenter exactement pareil dans ton fichier, espace compris, et majuscule minuscule, sinon il ne la trouvera pas)
    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
        Private Sub btnContient_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnContient.Click
            Dim Position As Integer = 0
            Dim lignes() As String = File.ReadAllLines("d:\data\test\lignes.txt")
            'recherche le début du bloc de ligne à traiter
            While lignes(Position).Trim <> "Total Copied Skipped Mismatch FAILED Extras" And Position < lignes.Count
                Position += 1
            End While
            ' recherche la ligne concernée et extrait la valeur (pour info indique le numéro de la ligne)
            For i As Integer = Position To lignes.Count - 1
                If lignes(i).Contains("Dirs") Then
                    MsgBox("La valeur de Failed dans la ligne Dirs est : " & lignes(i).Split()(6) & " (ligne N° " & (i + 1).ToString & ")")
                    Exit For
                End If
            Next
        End Sub
    Note : split renvoi un tableau => lignes(i).Split()(6) renvoie le 7ème élément du tableau (attention les : dans la lignes sont considéré comme un élément)
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/09/2006, 15h06
  2. Réponses: 12
    Dernier message: 04/09/2006, 17h59
  3. Comment récupérer les caractères accentués ?
    Par Sophy75 dans le forum Langage
    Réponses: 1
    Dernier message: 16/06/2006, 15h06
  4. Comment récupérer le caractère d'un String
    Par bouchette63 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/05/2006, 14h01
  5. [C#][2.0]Récupérer des caractères dans un textbox
    Par Sodangbe dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/04/2006, 12h50

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