p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre habitué
    Homme Profil pro
    Etudiant
    Inscrit en
    octobre 2012
    Messages
    154
    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 : 154
    Points : 139
    Points
    139

    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 confirmé
    Inscrit en
    janvier 2010
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : janvier 2010
    Messages : 104
    Points : 204
    Points
    204

    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 Expert Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    octobre 2008
    Messages
    832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : octobre 2008
    Messages : 832
    Points : 1 679
    Points
    1 679

    Par défaut

    Essayes cela :

    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
    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
    154
    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 : 154
    Points : 139
    Points
    139

    Par défaut

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

    Merci beaucoup !

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

Discussions similaires

  1. Bash - Découper une chaine de caractères
    Par nicolas.pissard dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 16/12/2014, 13h18
  2. position d'une chaine après un caractère
    Par bellak dans le forum C#
    Réponses: 1
    Dernier message: 25/05/2010, 02h49
  3. [SQ2K] Découper une chaine de caractères
    Par maitrebn dans le forum MS SQL-Server
    Réponses: 4
    Dernier message: 17/04/2007, 19h22
  4. Réponses: 6
    Dernier message: 15/04/2007, 13h06
  5. [VBA] Découper une chaine de caractères
    Par rantanplan81 dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/04/2007, 15h26

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