VB / VB.NET : RENVOYER CE QU'IL Y A AVANT UNE STRING, APRES UNE STRING OU ENTRE
celiphane
Messages postés466Date d'inscriptionsamedi 16 février 2002StatutMembreDernière intervention20 avril 2007
-
26 oct. 2002 à 01:57
blq
Messages postés97Date d'inscriptionvendredi 22 octobre 1999StatutMembreDernière intervention13 juin 2016
-
16 mai 2011 à 18:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Catch Err As Exception
Call MsgBox("Unable to get between String: " & thisStr & " - " & thisSecondStr & vbCrlf & Err.Message)
End Try
End Function
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 27 oct. 2002 à 10:12
C'est vrai que j'aurais pu utiliser left et right, mais bon, je laisse comme tel, comme ca il y a deux exemples sur une meme page.
Sinon j'ai pas le reflexe d'utiliser mes fonctions dans d'autres fonctions, mais ca aurait été bien plus rapide à écrire pour la fonction entre deux strings c vrai... enfin bon, au moins c'est clair, et on est pas obligé de declarer les 3 si on veux utiliser que la derniere (je cherchais une excuses :) )
Merci du comment'
celiphane
Messages postés466Date d'inscriptionsamedi 16 février 2002StatutMembreDernière intervention20 avril 2007 26 oct. 2002 à 01:57
Pratique en effet pour des begineurs, mais un peu lourd !
Tiens, voici une critique constructive, car je propose ceci pour y palier :
Function Avant(ByVal CetteStr As String, ByVal DansCetteStr As String) As String
Avant = Left(DansCetteStr, InStr(DansCetteStr, CetteStr) - 1)
End Function
Function Apres(ByVal CetteStr As String, ByVal DansCetteStr As String) As String
Apres = Right(DansCetteStr, Len(DansCetteStr) - InStr(DansCetteStr, CetteStr) - Len(CetteStr) + 1)
End Function
Function Entre(ByVal CetteStr As String, ByVal EtCetteStr As String, ByVal DansCetteStr As String) As String
Entre = Apres(CetteStr, Avant(EtCetteStr, DansCetteStr))
End Function
Pareille, mais en 1 ligne par fonction, SAUF SAUF SAUF que toi, tu as gérés les erreurs possibles, alors que ceci ne le fait pas...
Un plus pour un moins ou vice-versa quoi... ;)
(je propose ceci car en générale il s'agit de découper une chaine type formattée spécialement, donc normalement ces fonctions devraient convenir...)
Tchao @+
16 mai 2011 à 18:19
Function strBefore(ByVal thisStr As String, ByVal inThiStr As String) As String
strBefore = vbNullString
Try
strBefore = Left(inThiStr, InStr(inThiStr, thisStr) - 1)
Catch Err As Exception
Call MsgBox("Unable to get before String: " & thisStr & vbCrlf & Err.Message)
End Try
End Function
Function strAfter(ByVal thisStr As String, ByVal inThiStr As String) As String
strAfter = vbNullString
Try
strAfter = Right(inThiStr, Len(inThiStr) - InStr(inThiStr, thisStr) - Len(thisStr) + 1)
Catch Err As Exception
Call MsgBox("Unable to get after String: " & thisStr & vbCrlf & Err.Message)
End Try
End Function
Function strBetween(ByVal thisStr As String, ByVal thisSecondStr As String, ByVal inThiStr As String) As String
strBetween = vbNullString
Try
strBetween = strAfter(thisStr, strBefore(thisSecondStr, inThiStr))
Catch Err As Exception
Call MsgBox("Unable to get between String: " & thisStr & " - " & thisSecondStr & vbCrlf & Err.Message)
End Try
End Function
27 oct. 2002 à 10:12
Sinon j'ai pas le reflexe d'utiliser mes fonctions dans d'autres fonctions, mais ca aurait été bien plus rapide à écrire pour la fonction entre deux strings c vrai... enfin bon, au moins c'est clair, et on est pas obligé de declarer les 3 si on veux utiliser que la derniere (je cherchais une excuses :) )
Merci du comment'
26 oct. 2002 à 01:57
Tiens, voici une critique constructive, car je propose ceci pour y palier :
Function Avant(ByVal CetteStr As String, ByVal DansCetteStr As String) As String
Avant = Left(DansCetteStr, InStr(DansCetteStr, CetteStr) - 1)
End Function
Function Apres(ByVal CetteStr As String, ByVal DansCetteStr As String) As String
Apres = Right(DansCetteStr, Len(DansCetteStr) - InStr(DansCetteStr, CetteStr) - Len(CetteStr) + 1)
End Function
Function Entre(ByVal CetteStr As String, ByVal EtCetteStr As String, ByVal DansCetteStr As String) As String
Entre = Apres(CetteStr, Avant(EtCetteStr, DansCetteStr))
End Function
Pareille, mais en 1 ligne par fonction, SAUF SAUF SAUF que toi, tu as gérés les erreurs possibles, alors que ceci ne le fait pas...
Un plus pour un moins ou vice-versa quoi... ;)
(je propose ceci car en générale il s'agit de découper une chaine type formattée spécialement, donc normalement ces fonctions devraient convenir...)
Tchao @+