Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Membre habitué
    Homme Profil pro
    Etudiant
    Inscrit en
    octobre 2012
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2012
    Messages : 152
    Points : 128
    Points
    128

    Par défaut Découper une chaine après un caractère

    Bonjour à tous,

    Dans mon programme, je récupère une longue chaine de caractères avec une information dont j'ai besoin dedans. Cette chaine ressemble à ca : " ... lorem ipsum ... Date : 08/01/2013 ... lorem ipsum ... "

    Pour récupérer la date (08/01/2013), je procède de la façon suivante :

    Code :
    currentLine.Substring(currentLine.IndexOf("Date") + 5, 10)
    Sauf que mon code ne fonctionne plus si la taille de la date varie (08/01/13).

    J'aimerai savoir s'il existe une ou plusieurs méthodes pour palier à ce problème.

    Merci,

    Jah

  2. #2
    Membre actif
    Profil pro Michel Devaux
    Inscrit en
    janvier 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Nom : Michel Devaux

    Informations forums :
    Inscription : janvier 2010
    Messages : 104
    Points : 181
    Points
    181

    Par défaut

    Tu devrais à mon avis tester signe après signe la séquence débutant après DATE.

    Sachant que tu dois recueillir jour, mois et année, il suffit de remplir progressivement ces 3 variables en n'acceptant que les chiffres et en analysant le passage d'une variable à l'autre par la présence du signe /

  3. #3
    Membre émérite Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    octobre 2008
    Messages
    513
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : octobre 2008
    Messages : 513
    Points : 907
    Points
    907

    Par défaut

    Essayes cela :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Public Class Form1
     
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            MsgBox(ReturnDate(" ... lorem ipsum ... Date : 08/01/2013.... lorem ipsum ... "))
        End Sub
     
        Private Function isValid(ByVal val As String, ByVal format As String) As Boolean
            If Date.TryParseExact(val, format, System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.NoCurrentDateDefault, Nothing) Then
                Return True
            End If
            Return False
        End Function
     
        Private Function ReturnDate(ByVal val As String) As String
            Dim format10 As String = "dd/MM/yyyy"
            Dim format8 As String = "dd/MM/yy"
     
            Dim Date10 As String = val.Substring(val.LastIndexOf("Date : ") + 7).Substring(0, 10)
            Dim Date8 As String = val.Substring(val.LastIndexOf("Date : ") + 7).Substring(0, 8)
     
            If isValid(Date10, format10) Then
                Return Date10
            ElseIf isValid(Date8, format8) Then
                Return Date8
            Else
                Return "Non conforme !"
            End If
        End Function
     
    End Class

  4. #4
    Membre habitué
    Homme Profil pro
    Etudiant
    Inscrit en
    octobre 2012
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Etudiant
    Secteur : Service public

    Informations forums :
    Inscription : octobre 2012
    Messages : 152
    Points : 128
    Points
    128

    Par défaut

    Super, c'est exactement ce qu'il me fallait wallace1

    Merci beaucoup !

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •