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 :

Aide fonction & argument


Sujet :

VB.NET

  1. #1
    Membre actif
    Homme Profil pro
    Je sais pas
    Inscrit en
    Août 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Je sais pas
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2013
    Messages : 23
    Par défaut Aide fonction & argument
    Bonjour
    J'ai trouvé un code qui permet de voir si un site web est accessible ou pas
    Le problème est que pour raccourcir le code je voudrais utilisé les arguments et donc ne pas mettre 2 fois la fonction

    Voilà je ce que voudrais :

    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
    32
     
     If IcConnectionAvailable(Site1) = true) Then 
    msgbox("Supper , ça marche ")
    Else
    MsgBox("Le site n'est pas accessible")
    End if 
     
    If connectionAvailable(Site2) = true Then
    MsgBox("Super , ça marche")
    Else
    MsgBox(" Le site n'est pas accessible")
     
    Public Function IsConnectionAvailable(ByVal Site1 As String, ByVal Site2 As String) As Boolean
            Site1 = "http://Site1.com"
            Site2 = "http://google.fr"
            Dim objUrl As New System.Uri(" ??? " )  ' Je ne vois pas quoi mettre 
            Dim objWebReq As System.Net.WebRequest
            objWebReq = System.Net.WebRequest.Create(objUrl)
            Dim objresp As System.Net.WebResponse
     
            Try
                objresp = objWebReq.GetResponse
                objresp.Close()
                objresp = Nothing
                Return True
     
            Catch ex As Exception
                objresp = Nothing
                objWebReq = Nothing
                Return False
            End Try
        End Function

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour Skylle,

    la classe "System.Uri" n'accepte pas dans sa signature 2 arguments de type url !!

    Ça sert à rien de vouloir raccourcir la fonction, elle est très bien ainsi et n'a absolument pas besoin d'être optimisée !

    Mais bon si tu souhaites vraiment cela alors, voilà une solution comme une autre :

    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
     
         Public Function IsConnectionAvailable() As SortedList(Of String, Boolean)
            Dim sites As String() = New String() {"http://www.imabox.fr", "http://www.google.fr"}
            Dim b As New SortedList(Of String, Boolean)
            For Each Sit In sites
                Dim objUrl As New System.Uri(Sit)  ' Je ne vois pas quoi mettre 
                Dim objWebReq As System.Net.WebRequest
                objWebReq = System.Net.WebRequest.Create(objUrl)
                Dim objresp As System.Net.WebResponse
     
                Try
                    objresp = objWebReq.GetResponse
                    objresp.Close()
                    objresp = Nothing
                    b.Add(Sit, True)
                Catch ex As Exception
                    objresp = Nothing
                    objWebReq = Nothing
                    b.Add(Sit, False)
                End Try
            Next
            Return b
        End Function

    Comment l'appeler :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      For Each b In IsConnectionAvailable()
                MsgBox(b.Key & " = " & b.Value)
            Next
    Si tu as des questions concernant le contenu n'hésites pas .

    A+

  3. #3
    Membre très actif
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 175
    Par défaut
    Bonjour
    j'ai pas compris pourquoi vous utilise de argumants dans la fonction alors que tu peux mettre 1 seul et tu appelles la fonction 2 fois


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim url as string = "http://Site1.com"
     If IsConnectionAvailable(url) = true) Then 
    msgbox("Supper , ça marche ")
    Else
    MsgBox("Le site n'est pas accessible")
    End if 
     
    Url = "http://google.fr"
     
    If IsconnectionAvailable(url) = true Then
    MsgBox("Super , ça marche")
    Else
    MsgBox(" Le site n'est pas accessible")
    et la fonction :

    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
    Public Function IsConnectionAvailable(ByVal Site As String) As Boolean
            Dim objUrl As New System.Uri(Site)  ' Je ne vois pas quoi mettre 
            Dim objWebReq As System.Net.WebRequest
            objWebReq = System.Net.WebRequest.Create(objUrl)
            Dim objresp As System.Net.WebResponse
     
            Try
                objresp = objWebReq.GetResponse
                objresp.Close()
                objresp = Nothing
                Return True
     
            Catch ex As Exception
                objresp = Nothing
                objWebReq = Nothing
                Return False
            End Try
        End Function

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    J'ai due mal comprendre

    Je croyais qu'il ne voulais pas appeler 2 fois la fonction dans le corps de son programme comme ceci :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    If IcConnectionAvailable(Site1) = true) Then 
    msgbox("Supper , ça marche ")
    Else
    MsgBox("Le site n'est pas accessible")
    End if 
     
    If connectionAvailable(Site2) = true Then
    MsgBox("Super , ça marche")
    Else
    MsgBox(" Le site n'est pas accessible")
    ....c'est pourquoi j'ai dis plus haut que la fonction d'origine n'a pas besoin de modification ....pas tout compris ...

    pas grave.

    A+

  5. #5
    Membre actif
    Homme Profil pro
    Je sais pas
    Inscrit en
    Août 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Je sais pas
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2013
    Messages : 23
    Par défaut
    Je doit simplement vérifier si les sites ou je dois me rendre son accessible ( pas ddos ou down )
    Pour cela j'ai trouvé une fonction et comme argument je met chacun des sites

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If isconnectionavailable(PremierSite) = True then 
         MsgBox("Le premier site est accessible")
    End if 
     
    If isconnectionavailable(Dsite) = True then 
         MsgBox("Le deuxième site est accessible site est accessible")
    End if

  6. #6
    Membre actif
    Homme Profil pro
    Je sais pas
    Inscrit en
    Août 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Je sais pas
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Août 2013
    Messages : 23
    Par défaut
    Quelqu'un aurait une réponse , en fait c'est juste pour éviter de répéter la fonction , je dois voir mes 2 sites sont accessibles

  7. #7
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Je comprends pas ce que tu recherches exactement ????

    Cette réponse ne te convenait pas :

    http://www.developpez.net/forums/d13...t/#post7549202

    Ou alors tu la modifie comme 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
     
    Public Function IsConnectionAvailable() As SortedList(Of String, String)
            Dim sites As String() = New String() {"http://www.imabox.fr", "http://www.google.fr"}
            Dim b As New SortedList(Of String, String)
            For Each Sit In sites
                Dim objUrl As New System.Uri(Sit)  ' Je ne vois pas quoi mettre 
                Dim objWebReq As System.Net.WebRequest
                objWebReq = System.Net.WebRequest.Create(objUrl)
                Dim objresp As System.Net.WebResponse
     
                Try
                    objresp = objWebReq.GetResponse
                    objresp.Close()
                    objresp = Nothing
                    b.Add(Sit,  "est accessible !")
                Catch ex As Exception
                    objresp = Nothing
                    objWebReq = Nothing
                    b.Add(Sit, "n'est pas accessible !")
                End Try
            Next
            Return b
        End Function
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim result$
     
            For Each b In IsConnectionAvailable()
                result &= vbnewline &  b.Key & " " & b.Value
            Next
     
    Msgbox(result)
    Et si ça ne te convient toujours pas, il va falloir être plus explicite !


    A+

  8. #8
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    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 197
    Par défaut
    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
    public sub TestSites()
      dim sites as new list(of string)
      sites.Add("http://google.fr")
      sites.Add("http://microsoft.com")
     
      for each s in sites
         if IsConnectionAvailable(s) then
            msgbox (s & " ok")
           else
            msgbox (s & " pas ok")
         end if
      next
    end sub
     
    Public Function IsConnectionAvailable(ByVal site As String) As Boolean
            Dim objWebReq = System.Net.WebRequest.Create(New System.Uri(site))
     
            Try
                Dim objresp = objWebReq.GetResponse
                objresp.Close()
                Return True
     
            Catch ex As Exception
                Return False
            End Try
        End Function
    pour info les trucs du genre objresp = Nothing sont inutiles, en sortie de sub/function toutes les variables déclarées dans la sub sont mises à nothing automatiquement

    on peut aussi écrire des trucs du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox( (from s in sites where IsConnectionAvailable(s) = false select s).count.tostring & " sites non dispos")
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (from s in sites where IsConnectionAvailable(s) = false select s).firstordefaut isnot nothing then msgbox ("au moins un site pas connecté)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 4
    Dernier message: 09/03/2014, 09h38
  2. besoin d'aide fonction avec fichier (debutant)
    Par boby61 dans le forum Débuter
    Réponses: 9
    Dernier message: 14/03/2005, 11h22
  3. Passer une fonction comme argument à une fonction
    Par Cocotier974 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/06/2004, 13h41
  4. [VB.NET] Fonctions en argument ?
    Par BobLeNain dans le forum VB.NET
    Réponses: 8
    Dernier message: 03/06/2004, 12h47
  5. Fonction divisant argument de type inconnu
    Par Nasky dans le forum C
    Réponses: 9
    Dernier message: 29/07/2003, 00h32

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