Pour les amateurs de StringField

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
MLD
Messages : 1103
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Pour les amateurs de StringField

Message par MLD »

Bonjour a tous

Grand amateur de StringField, que je met a toutes les sauces. Il me manque une fonction pour changer un texte entre deux délimiteurs.
Voici donc une procedure qui réalise ceci.

Code : Tout sélectionner

Procedure.s ChangeStringField(chaine$,Index,Delimiteur$,texte$)
nbd.w = 0 : lenG = 0 : lenD = 0
If chaine$ <> ""
 For i.w = 1 To Len(chaine$)
  If Mid(chaine$,i,1) = Delimiteur$
   nbd = nbd + 1
   If nbd = index -1
    lenG = i
   EndIf
   If nbd = Index
    lenDd = i
   EndIf
   lenD = i - lenDd  
  EndIf 
 Next
 If nbd => Index ;vérif qu'il y a bien le nombre de délimiteur nécéssaire pour l'appel de la fonction

 ProcedureReturn Left(chaine$,lenG) + texte$ + Right(chaine$,lenD+1)

 EndIf
EndIf    
EndProcedure

chaine$ = "Super *belle *cette *fille*"
Debug chaine$
a$ = StringField(chaine$,1,"*") + StringField(chaine$,2,"*")+StringField(chaine$,3,"*")+StringField(chaine$,4,"*")
Debug a$
chaine$ = ChangeStringField(chaine$,2,"*","moche ")
Debug chaine$
b$ = StringField(chaine$,1,"*") + StringField(chaine$,2,"*")+StringField(chaine$,3,"*")+StringField(chaine$,4,"*")
Debug b$
Si ça peu rendre service :lol:
Fred STP quelque chose commececi dans la prochaine mouture de PB :wink: :lol: