Chaine de caracteres

951362 Messages postés 3 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 23 mars 2005 - 23 mars 2005 à 19:19
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 24 mars 2005 à 00:21
Bonjour, en fait j'ai un petit problème je voulais savoir comment le résoudre.

j'ai une fonction pour reperer une chaine de caractère entre 2 parties:



----------------------------------------

Private Function ChaineEntre(Text, ChaineDebut, ChaineFin As String) As String

Dim posDebut, PosFin As Long

posDebut = InStr(1, Text, ChaineDebut) + Len(ChaineDebut)



PosFin = InStr(posDebut, Text, ChaineFin)



If PosFin = 0 Then

ChaineEntre = ""

Exit Function

End If



ChaineEntre = Mid(Text, posDebut, PosFin - posDebut)



End Function

----------------------------------------



et dans mon code j'utilise:



Info = ChaineEntre(TextBox, "Terrain" + " " + "1" + " " + ":", ":")

Info2 = ChaineEntre(TextBox, "Terrain" + " " + "2" + " " + ":", ":")



et dans un autre fichier j'affiche Info et Info2, jusque la pas de problème...

seulement, si Terrain 2 n'existe pas il m'affiche un autre texte, qui n'a rien a voir (mais qui se trouve dans le fichier).



je voudrais savoir si il est possible, que si il ne trouve pas:
EXACTEMENT cette chaine ("Terrain" + " " + "2" + " " + ":") alors Info2
= ""



Merci d'avance


Protecteur

5 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
23 mars 2005 à 19:45
Private Function ChaineEntre(Text, ChaineDebut, ChaineFin As String) As String
Dim posDebut As Long
Dim PosFin As Long
posDebut = InStr(1, Text, ChaineDebut)
If posDebut Then
posDebut = posDebut + Len(ChaineDebut)
PosFin = InStr(posDebut, Text, ChaineFin)
If PosFin Then
ChaineEntre = Mid(Text, posDebut, PosFin - posDebut)
End If
End If
End Function

info = ChaineEntre(TextBox, "Terrain" & " " & "1" & " " & ":", ":")
info2 = ChaineEntre(TextBox, "Terrain" & " " & "2" & " " & ":", ":")

'ou plus directement
info = ChaineEntre(TextBox, "Terrain 1 :", ":")
info2 = ChaineEntre(TextBox, "Terrain 2 :", ":")

Daniel
0
951362 Messages postés 3 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 23 mars 2005
23 mars 2005 à 22:56
merci, mais il n'y a pas une erreur dans ta source?? car la il ne m'affiche plus rien du tout

Protecteur
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
23 mars 2005 à 23:19
pourtant je l'ai testé

Private Sub Command1_Click()
Dim info1 As String
Dim info2 As String
Dim TextBox As String


TextBox = "abcdefgTerrain 1 :001:vekvjklenkelTerrain 2 :002:bhjebvejibv"

info1 = ChaineEntre(TextBox, "Terrain 1 :", ":")
MsgBox info1
info2 = ChaineEntre(TextBox, "Terrain 2 :", ":")
MsgBox info2
End Sub

Daniel
0
951362 Messages postés 3 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 23 mars 2005
23 mars 2005 à 23:59
je comprend pas trop, c'est possible que ce sois a cause de la longueurs du texte???

car dans tout le texte, je reprend 2 autres données, sa marche, mais
quand je descend un peu plus pour prendre d'autres valeurs sa marche
plus.... comment je peut faire pour pouvoir le faire???



merci d'avance


Protecteur
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
24 mars 2005 à 00:21
j'ai mis TextBox en String mais si tu as utilisé un vrai TextBox en effet c'est limité en taille on ne peut pas mettre plus de 65535 caractères environ.
sinon je vois pas d'autre limite, les pointeurs étant déclarés en Long
à moins que ton fichier dépasse les 2 milliards de caractères...

Daniel
0
Rejoignez-nous