Split()

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
falsam
Messages : 6947
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Split()

Message par falsam »

Cette procédure retourne un tableau de chaînes, chacune d'elle étant une sous-chaîne du paramètre string extraite en utilisant le séparateur delimiter.

C'est une fonctionnalité qui existe en JavaScript par exemple et j'avais envie d'avoir cette fonctionnalité en PureBasic.

Un tout petit code pour sastifaire cette envie :)

Code : Tout sélectionner

Procedure Split(Array Array.s(1), String.s, Delimiter.s)
  Protected File, i, j, Buffer.s
      
  j = CountString(String, Delimiter)  
  ReDim Array(j)
  For i=1 To j+1  
    Array(i-1) = StringField(String, i, Delimiter)
  Next
EndProcedure

;-Zone de test
Dim Jours.s(0)

Split(Jours(), "lundi mardi mercredi jeudi vendredi samedi dimanche", " ")

;Vérification
For n=0 To ArraySize(Jours())
  Debug Jours(n)
Next
Ce n'est pas grand chose mais c'est pratique.

➽ Config PureBasic : Windows 10 Version 64 Bits - DirectX 11 - PB 5.72

➽ Je ne réponds pas aux MP techniques
Avatar de l’utilisateur
Kwai chang caine
Messages : 6819
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Split()

Message par Kwai chang caine »

Et en VB6 ...
Merci Falsam 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
kernadec
Messages : 1504
Inscription : ven. 25/avr./2008 11:14

Re: Split()

Message par kernadec »

sympa :D merci falsam
PAPIPP
Messages : 499
Inscription : sam. 23/févr./2008 17:58

Re: Split()

Message par PAPIPP »

Bonjour à tous

Voici une autre façon avec les REGEX

Code : Tout sélectionner

; If CreateRegularExpression(0,"[a-zA-Z]*")  ; Avec des minuscules ou des majuscules
If CreateRegularExpression(0,"[a-z]*")  ; Ici Avec seulement des minuscules
 
    Dim Resultat$(0)
    Nb=ExtractRegularExpression(0,"lundi mardi mercredi jeudi vendredi samedi dimanche",Resultat$())
    For k=0 To Nb-1
      Debug Resultat$(k)
    Next
  Else
    Debug RegularExpressionError()
  EndIf
  

A+
Il est fort peu probable que les mêmes causes ne produisent pas les mêmes effets.(Einstein)
Et en logique positive cela donne.
Il est très fortement probable que les mêmes causes produisent les mêmes effets.
Répondre