Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
9 août 2007 à 08:59
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 2019
-
9 août 2007 à 18:20
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 9 août 2007 à 18:20
Ya aussi ça :
Public Function WinSocketState(ByRef Socket As Winsock) As String
WinSocketState = Split("Fermé.,Ouvert.,En écoute ...,En Attente ...,Résolution DNS ...,Hote résolu !,Connexion ...,Connecté.,Fermeture ...,Erreur !", ",")(Socket.State)
End Function
Ce n'est pas plus court mais il faut le connaitre rien que pour sa syntaxe particuliere.
@+
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 9 août 2007 à 18:16
Je pense surtout que ce code serait mieu chez codyx.org car il faut avoir au moins 5 lignes de code (hors declaration) pour figurer dans la rubrique "code"
Merci de ta comprehension
@+
cs_miata
Messages postés86Date d'inscriptionmardi 31 août 2004StatutMembreDernière intervention19 août 2008 9 août 2007 à 09:02
Merci pour tes codes !
Et dire que je faisais encore pire que le classic, j'utilisais des IF pour chaque état :/ mon split comparé à mes If était nettement meilleur :D
Mais merci pour les 2 premiers code !
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 9 août 2007 à 08:59
Je pense qu'il est préférable de passer le State du Socket en parametre plutot que le Socket lui même. C'est personnel, certes, mais ca rend la chose plus facilement réutilisable (pas lié au composant Socket).
Voici des implémentations différentes de la chose.
encore plus court:
Public Function WinSocketState(ByVal veState As StateConstants) As String
WinSocketState = Choose(1 + veState, "Fermé.", "Ouvert.", "En écoute ...", "En Attente ...", "Résolution DNS ...", "Hote résolu !", "Connexion ...", "Connecté.", "Fermeture ...", "Erreur !")
End Function
le plus proche de ton SPlit, en plus efficace :
Public Function WinSocketState(ByVal veState As StateConstants) As String
Static zStates As Variant
If Not IsArray(zStates) Then
zStates = Array("Fermé.", "Ouvert.", "En écoute ...", "En Attente ...", "Résolution DNS ...", "Hote résolu !", "Connexion ...", "Connecté.", "Fermeture ...", "Erreur !")
End If
WinSocketState = zStates(veState)
End Function
enfin, le code "classique" :
Public Function WinSocketState(ByVal veState As StateConstants) As String
Select Case veState
Case StateConstants.sckClosed
WinSocketState = "Fermé."
Case StateConstants.sckOpen
WinSocketState = "Ouvert."
Case StateConstants.sckListening
WinSocketState = "En écoute..."
Case StateConstants.sckConnectionPending
WinSocketState = "En Attente..."
Case StateConstants.sckResolvingHost
WinSocketState = "Résolution DNS..."
Case StateConstants.sckHostResolved
WinSocketState = "Hôte résolu !"
Case StateConstants.sckConnecting
WinSocketState = "Connexion..."
Case StateConstants.sckConnected
WinSocketState = "Connecté."
Case StateConstants.sckClosing
WinSocketState = "Fermeture..."
Case Else
WinSocketState = "Erreur !"
End Select
End Function
9 août 2007 à 18:20
Public Function WinSocketState(ByRef Socket As Winsock) As String
WinSocketState = Split("Fermé.,Ouvert.,En écoute ...,En Attente ...,Résolution DNS ...,Hote résolu !,Connexion ...,Connecté.,Fermeture ...,Erreur !", ",")(Socket.State)
End Function
Ce n'est pas plus court mais il faut le connaitre rien que pour sa syntaxe particuliere.
@+
9 août 2007 à 18:16
Merci de ta comprehension
@+
9 août 2007 à 09:02
Et dire que je faisais encore pire que le classic, j'utilisais des IF pour chaque état :/ mon split comparé à mes If était nettement meilleur :D
Mais merci pour les 2 premiers code !
9 août 2007 à 08:59
Voici des implémentations différentes de la chose.
encore plus court:
Public Function WinSocketState(ByVal veState As StateConstants) As String
WinSocketState = Choose(1 + veState, "Fermé.", "Ouvert.", "En écoute ...", "En Attente ...", "Résolution DNS ...", "Hote résolu !", "Connexion ...", "Connecté.", "Fermeture ...", "Erreur !")
End Function
le plus proche de ton SPlit, en plus efficace :
Public Function WinSocketState(ByVal veState As StateConstants) As String
Static zStates As Variant
If Not IsArray(zStates) Then
zStates = Array("Fermé.", "Ouvert.", "En écoute ...", "En Attente ...", "Résolution DNS ...", "Hote résolu !", "Connexion ...", "Connecté.", "Fermeture ...", "Erreur !")
End If
WinSocketState = zStates(veState)
End Function
enfin, le code "classique" :
Public Function WinSocketState(ByVal veState As StateConstants) As String
Select Case veState
Case StateConstants.sckClosed
WinSocketState = "Fermé."
Case StateConstants.sckOpen
WinSocketState = "Ouvert."
Case StateConstants.sckListening
WinSocketState = "En écoute..."
Case StateConstants.sckConnectionPending
WinSocketState = "En Attente..."
Case StateConstants.sckResolvingHost
WinSocketState = "Résolution DNS..."
Case StateConstants.sckHostResolved
WinSocketState = "Hôte résolu !"
Case StateConstants.sckConnecting
WinSocketState = "Connexion..."
Case StateConstants.sckConnected
WinSocketState = "Connecté."
Case StateConstants.sckClosing
WinSocketState = "Fermeture..."
Case Else
WinSocketState = "Erreur !"
End Select
End Function