
EN: rebol.com -
rebol.org -
rebol.net -
FR: Rebol Documentation Project -
forum RebelBB -
rebol-france.org -
forum codeur -
Extrait une valeur d’une série à intervalles réguliers.
extract block width
block - Le bloc en argument. (type: block! hash!)
width - La taille de chaque entrée (le pas) (type: integer!)
/index - Extrait depuis une position décalée
pos - La position
Retourne un nouveau bloc qui contient les valeurs espacées à intervalles réguliers d’un bloc spécifié. C’est utile si vous avez un bloc contenant des “rangées” implicites ou des “enregistrements” de données. WIDTH est la taille de chaque rangée.
Dans l’exemple ci-dessous, la largeur de chaque rangée est de trois :
people: [ 1 "Bob" "Smith" 2 "Cat" "Walker" 3 "Ted" "Jones" ] block: extract people 3 probe block [ 1 2 3]
Vous pouvez voir que par défaut, EXTRACT agit sur le premier élément de chaque rangée. Pour extraire une “colonne” différente des données, utilisez le raffinement /INDEX pour spécifier un décalage:
block: extract/index people 3 2 probe block ["Bob" "Cat" "Ted"]
Bien entendu, extract fonctionne avec n’importe quelle série bloc, pas seulement celles qui se présentent sous un format en rangées (comme ce qui précède.) L’exemple suivant crée un block contenant un mot sur deux d’une chaîne de caractères:
str: "This is a given block here" blk: parse str none probe blk ["This" "is" "a" "given" "block" "here"]
probe extract blk 2 ["This" "a" "block"]
probe extract/index blk 2 2 ["is" "given" "here"]
Voici un exemple qui utilise EXTRACT pour obtenir les noms de tous les styles VID prédéfinis dans REBOL/View:
probe extract system/view/vid/vid-styles 2 [face blank-face IMAGE BACKDROP BACKTILE BOX BAR SENSOR KEY BASE-TE XT VTEXT TEXT BODY TXT BANNER VH1 VH2 VH3 VH4 LABEL VLAB LBL LAB TITLE H 1 H2 H3 H4 H5 TT CODE BUTTON CHECK CHECK-MARK RADIO CHECK-LINE RADIO-LIN E LED ARROW TOGGLE ROTARY CHOICE DROP-DOWN ICON FIELD INFO AREA SLIDER S CROLLER PROGRESS PANEL LIST TEXT-LIST ANIM BTN BTN-ENTER BTN-CANCEL BTN- HELP LOGO-BAR TOG]