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 :

Format numéro de téléphone [Débutant]


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Par défaut Format numéro de téléphone
    Bonjour,

    Je cherche à formater des String en numéros de téléphone. J'ai écrit la fonction suivante, mais ça ne fonctionne pas des masses. j'ai conscience que c'est un problème basique, mais je n'ai rien trouvé de probant sur le net.

    Merci d'avance pour votre coup de main.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Function FormatTEL(ByVal num As String) As String
            If num <> "" Then
                If Len(num) = 10 Then
                    num = Format(num, "## ## ## ## ##")
                Else
                    num = Format(num, "0# ## ## ## ##")
                End If
            Else
                num = ""
            End If
     
            Return num
        End Function

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    ce n'est pas toujours une bonne idée de vouloir formatter un numéro de téléphone, parfois ca peut commencer par +xx pour un pays et donc ca ne fait plus 10 chiffres
    sinon tu peux concaténer des substring et des espaces
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre actif
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Par défaut
    Justement, les numéros sont saisis à la main de base et introduis dans une base de données et transférés via script dans une autre BDD, mais le script dégage le 0 du début et les espaces.

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 696
    Par défaut
    Bonjour,
    à voir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Dim number As Integer
            Dim result As Boolean = Int32.TryParse(num, number)
            If result Then
                TextBox1.Text = String.Format("{0:0# ## ## ## ##}", number)
            End If

  5. #5
    Membre actif
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Par défaut
    Tout bonnement parfait.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Function FormatTEL(ByVal num As String) As String
            Dim number As Integer
            Dim result As Boolean = Int32.TryParse(num, number)
            If result Then num = String.Format("{0:0# ## ## ## ##}", number)
            Return num
        End Function
    Par curiosité, quelle est la différence en ces deux codes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.Format("{0:0# ## ## ## ##}", number)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(number, "0# ## ## ## ##")
    Les fonctions Format ont des arguments différents, mais pourquoi en mettre deux du même nom ?

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 696
    Par défaut
    Bonsoir,
    je pense que nous avons 2 classes faisant le même travail grosso-modo, une de l'héritage de VB6 et une du .NET Framework.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(number, "0# ## ## ## ##")
    appartient à la classe Strings héritant de Microsoft.VisualBasic


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String.Format("{0:0# ## ## ## ##}", number)
    appartient à la classe String héritant de mscorlib

    To use or not use Microsoft.VisualBasic.dll
    Les spécialistes nous en diront certainement plus.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    normalement tout ce qui traine dans microsoft.visualbasic appelle les méthodes du framework correspondantes, ca perd peut etre une pico seconde d'un appel en plus, et encore, faudrait voir le code compilé

    quand aux cint, cdec et autres, ce ne sont des mots clés, qui là aussi sont compilés comme y faut
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #8
    Membre actif
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Par défaut
    Merci pour ces informations.

  9. #9
    Membre actif
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2006
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2006
    Messages : 129
    Par défaut
    Alors...

    J'ai testé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim d As Date
                    If Date.TryParse(s, d) Then t.Text = Format(d, "dd/MM/yyyy")
    Mais le code suivant ne fonctionne pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim d As Date
                    If Date.TryParse(s, d) Then t.Text = String.Format("dd/MM/yyyy", d)
    Du coup, j'ai encore du mal avec ca... j'ai regardé sur google, mais la plupart des sujet ne traite que du Format classique et non de String.Format

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 193
    Par défaut
    string.format ne doit pas faire tout ...

    par contre pour les dates côté framework il y a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    madate.tostring("dd/MM/yyyy")
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 696
    Par défaut
    Bonjour,
    pour string.Format, il faut indiquer l'argument à mettre en forme, même si il n'y en a qu'un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Dim d As DateTime
            Dim s As String = "20 10 2013"
            If Date.TryParse(s, d) Then TextBox1.Text = String.Format("{0:dd/MM/yyyy}", d)
    Il peut y en avoir plusieurs pour formater des valeurs de variables dans un texte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
            Dim d As DateTime
            Dim h As DateTime
            Dim dat As String = "29 11 2013"
            Dim hr As String = "15:30:00"
     
            If DateTime.TryParse(dat, d) And DateTime.TryParse(hr, h) Then
                TextBox1.Text = String.Format("Vous avez rendez vous le " & "{0:dd/MM/yyyy}" & " à " & "{1:HH \H mm}", d, h)
            End If

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

Discussions similaires

  1. Formater numéro de téléphone
    Par KREEN1978 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 20/01/2015, 16h30
  2. Réponses: 21
    Dernier message: 31/07/2009, 16h08
  3. Formater numéro de téléphone
    Par neiler dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2008, 21h13
  4. Réponses: 7
    Dernier message: 17/04/2007, 22h31

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