Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Extraire une chaine de caractère
Message
De
15/03/2006 13:06:45
 
 
À
15/03/2006 13:03:45
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Versions des environnements
Visual FoxPro:
VFP 8
OS:
Windows XP
Network:
Windows XP
Database:
MySQL
Divers
Thread ID:
01104608
Message ID:
01104610
Vues:
12
>j'ai cette chaine de caractère "/etc/france/variable/" et je voudrais extraire
>etc , france , variable et les mettre dans un listbox
>
>comment est-ce possible

Sur le principle d'un délimiteur, c'est deux fonctions pourront vous être utile:
* Return the number of parameters in a list
* expC1 Parameter list
* expC2 Delimiter (default is the comma)
FUNCTION ParmCnt
PARAMETER tcParms,tcDelimiter
LOCAL lcDelimiter
IF TYPE('tcDelimiter')<>'C'
   lcDelimiter=','
   ELSE
   lcDelimiter=tcDelimiter
ENDIF
RETURN IIF(EMPTY(tcParms),0,OCCURS(lcDelimiter,tcParms)+1)


* Return a parameter value from a list
* expC1 Parameter list
* expN1 Parameter number
* expC2 Delimiter (default is the comma)
FUNCTION GetParm
PARAMETERS tcParms,tnNo,tcDelimiter
LOCAL lcDelimiter,lnBPos,lnEPos
IF TYPE('tcDelimiter')<>'C'
   lcDelimiter=','
   ELSE
   lcDelimiter=tcDelimiter
ENDIF
lnBPos=AT(lcDelimiter,lcDelimiter+tcParms+lcDelimiter,tnNo)
lnEPos=AT(lcDelimiter,lcDelimiter+tcParms+lcDelimiter,tnNo+1)
RETURN SUBSTR(tcParms,lnBPos,lnEPos-lnBPos-1)
En gros, vous pouvez les utiliser comme suit:
LOCAL lcString,lnOccurence,lnCounter,lcParameter
lcString="/etc/france/variable/"
lnOccurence=ParmCnt(lcString,"/")
FOR lnCounter=1 TO lnOccurence
   lcParameter=GetParm(lcString,lnCounter)
NEXT
...à tester
Michel Fournier
Level Extreme Inc.
Designer, architect, owner of the Level Extreme Platform
Subscribe to the site at https://www.levelextreme.com/Home/DataEntry?Activator=55&NoStore=303
Subscription benefits https://www.levelextreme.com/Home/ViewPage?Activator=7&ID=52
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform