Split()

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
falsam
Messages : 7244
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.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
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 : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Split()

Message par kernadec »

sympa :D merci falsam
PAPIPP
Messages : 534
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