Public Function GetPart(Text As String, Delimiter As String, Index As Long) As String Dim parts() As String
parts = Split(Text, Delimiter)
If LBound(parts) > UBound(parts) Then GetPart = "" ElseIf (Index >= LBound(parts) And Index < UBound(parts)) Then GetPart = parts(Index) & Delimiter ElseIf Index = UBound(parts) Then GetPart = parts(UBound(parts)) Else GetPart = "" End If End Function
François
On 5æ12æ¥, åå¾2:00, rico34 <ric...@discussion s.microsoft.com> wrote:
Bonjour,
Existe-il une fonction qui extrait une chaine de caractère de la man ière
suivante.
Public Function GetPart(Text As String, Delimiter As String, Index As
Long) As String
Dim parts() As String
parts = Split(Text, Delimiter)
If LBound(parts) > UBound(parts) Then
GetPart = ""
ElseIf (Index >= LBound(parts) And Index < UBound(parts)) Then
GetPart = parts(Index) & Delimiter
ElseIf Index = UBound(parts) Then
GetPart = parts(UBound(parts))
Else
GetPart = ""
End If
End Function
Public Function GetPart(Text As String, Delimiter As String, Index As Long) As String Dim parts() As String
parts = Split(Text, Delimiter)
If LBound(parts) > UBound(parts) Then GetPart = "" ElseIf (Index >= LBound(parts) And Index < UBound(parts)) Then GetPart = parts(Index) & Delimiter ElseIf Index = UBound(parts) Then GetPart = parts(UBound(parts)) Else GetPart = "" End If End Function
François
Patrice Henrio
non mais cela n'est pas très difficile à écrire
function extraire(byval CH as string, byVal Cherche as string, ByVal N as long) dim X as long X=InStr(CH,Cherche) If X=0 then extraire="" exit function end If If N=0 then If X=1 then extraire="" else extraire=left(CH,X-1) else If X=len(CH)-len(Cherche)+1 then extraire="" else extraire=mid(CH,X+len(Cherche)) end function
"rico34" a écrit dans le message de news:
Bonjour,
Existe-il une fonction qui extrait une chaine de caractère de la manière suivante.
function extraire(byval CH as string, byVal Cherche as string, ByVal N as
long)
dim X as long
X=InStr(CH,Cherche)
If X=0 then
extraire=""
exit function
end If
If N=0 then
If X=1 then extraire="" else extraire=left(CH,X-1)
else
If X=len(CH)-len(Cherche)+1 then extraire="" else
extraire=mid(CH,X+len(Cherche))
end function
"rico34" <rico34@discussions.microsoft.com> a écrit dans le message de news:
C7B1B8E4-B64F-4F4B-9A26-A7CCE1A52F30@microsoft.com...
Bonjour,
Existe-il une fonction qui extrait une chaine de caractère de la manière
suivante.
function extraire(byval CH as string, byVal Cherche as string, ByVal N as long) dim X as long X=InStr(CH,Cherche) If X=0 then extraire="" exit function end If If N=0 then If X=1 then extraire="" else extraire=left(CH,X-1) else If X=len(CH)-len(Cherche)+1 then extraire="" else extraire=mid(CH,X+len(Cherche)) end function
"rico34" a écrit dans le message de news:
Bonjour,
Existe-il une fonction qui extrait une chaine de caractère de la manière suivante.
Petit complément: La fonction de François fonctionne comme spécifiée mais n'a pas d'excellentes performances (pour autant que ça ait une importance).
La fonction de Patrice ne compile pas (problème de end if) et une fois le problème réglé, elle ne fonctionne pas comme spécifiée (par exemple "bonjour", n, 0 retourne "bo" au lieu de "bon".
Voici ma version, qui reprend plus ou moins l'idée de Patrice, et qui fonctionne comme spécifiée. Elle est environ 4,5 fois plus rapide que la version de François (Split coute cher, les Ubound aussi et l'opérateur de concaténation est notoirement très lent).
Function GetPart2(ByVal szText As String, _ ByVal szPattern As String, _ ByVal n As Long) Dim p As Long
p = InStr(szText, szPattern)
If (n = 0) Or (p = 0) Then GetPart2 = Left$(szText, p) Else GetPart2 = Mid$(szText, p + Len(szPattern)) End If End Function
Petit complément:
La fonction de François fonctionne comme spécifiée mais n'a pas
d'excellentes performances (pour autant que ça ait une importance).
La fonction de Patrice ne compile pas (problème de end if) et une fois
le problème réglé, elle ne fonctionne pas comme spécifiée (par
exemple "bonjour", n, 0 retourne "bo" au lieu de "bon".
Voici ma version, qui reprend plus ou moins l'idée de Patrice, et qui
fonctionne comme spécifiée. Elle est environ 4,5 fois plus rapide que
la version de François (Split coute cher, les Ubound aussi et l'opérateur
de concaténation est notoirement très lent).
Function GetPart2(ByVal szText As String, _
ByVal szPattern As String, _
ByVal n As Long)
Dim p As Long
p = InStr(szText, szPattern)
If (n = 0) Or (p = 0) Then
GetPart2 = Left$(szText, p)
Else
GetPart2 = Mid$(szText, p + Len(szPattern))
End If
End Function
Petit complément: La fonction de François fonctionne comme spécifiée mais n'a pas d'excellentes performances (pour autant que ça ait une importance).
La fonction de Patrice ne compile pas (problème de end if) et une fois le problème réglé, elle ne fonctionne pas comme spécifiée (par exemple "bonjour", n, 0 retourne "bo" au lieu de "bon".
Voici ma version, qui reprend plus ou moins l'idée de Patrice, et qui fonctionne comme spécifiée. Elle est environ 4,5 fois plus rapide que la version de François (Split coute cher, les Ubound aussi et l'opérateur de concaténation est notoirement très lent).
Function GetPart2(ByVal szText As String, _ ByVal szPattern As String, _ ByVal n As Long) Dim p As Long
p = InStr(szText, szPattern)
If (n = 0) Or (p = 0) Then GetPart2 = Left$(szText, p) Else GetPart2 = Mid$(szText, p + Len(szPattern)) End If End Function
C'est quoi le but du jeu, de séparer les syllabes d'un mot ?
-- Merci beaucoup, au revoir et à bientôt :o) ------ Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "rico34" a écrit dans le message de news:
Bonjour,
Existe-il une fonction qui extrait une chaine de caractère de la manière suivante.
C'est quoi le but du jeu, de séparer les syllabes d'un mot ?
--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"rico34" <rico34@discussions.microsoft.com> a écrit dans le message de news:
C7B1B8E4-B64F-4F4B-9A26-A7CCE1A52F30@microsoft.com...
Bonjour,
Existe-il une fonction qui extrait une chaine de caractère de la manière
suivante.
C'est quoi le but du jeu, de séparer les syllabes d'un mot ?
-- Merci beaucoup, au revoir et à bientôt :o) ------ Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "rico34" a écrit dans le message de news:
Bonjour,
Existe-il une fonction qui extrait une chaine de caractère de la manière suivante.