Précédent   Forum du club des développeurs et IT Pro > Dotnet > Langages > VB.NET
VB.NET Forum d'entraide sur la programmation Visual Basic .NET. Avant de poster -> FAQ VB.NET, Articles VB.NET, Sources VB.NET
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 08/01/2013, 17h20   #1
Jah73
Membre à l'essai
 
Homme
Etudiant
Inscription : octobre 2012
Messages : 52
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 : 52
Points : 24
Points : 24
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
Jah73 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2013, 17h39   #2
mdevaux62
Membre actif
 
Michel Devaux
Inscription : janvier 2010
Messages : 102
Détails du profil
Informations personnelles :
Nom : Michel Devaux

Informations forums :
Inscription : janvier 2010
Messages : 102
Points : 181
Points : 181
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 /
mdevaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 08/01/2013, 19h09   #3
wallace1
Membre habitué
 
Homme
Administrateur systèmes et réseaux
Inscription : octobre 2008
Messages : 62
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 : 62
Points : 139
Points : 139
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
wallace1 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/01/2013, 10h05   #4
Jah73
Membre à l'essai
 
Homme
Etudiant
Inscription : octobre 2012
Messages : 52
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 : 52
Points : 24
Points : 24
Super, c'est exactement ce qu'il me fallait wallace1

Merci beaucoup !
Jah73 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h52.


 
 
 
 
Partenaires

Hébergement Web