ScriptForge. Service Array

Fournit une collection de méthodes pour manipuler et transformer des matrices à une dimension (vecteurs) et des matrices à deux dimensions (matrices). Cela inclut les opérations d'ensemble, le tri, l'import depuis et l'export vers des fichiers texte.

Les matrices avec plus de deux dimensions ne peuvent pas être utilisées avec les méthodes de ce service, la seule exception étant la méthode CountDims qui accepte les matrices avec un nombre quelconque de dimensions.

Les éléments de matrice peuvent contenir n'importe quel type de valeur, y compris des (sous) matrices.

Les matrices unidimensionnelles contenant uniquement des sous-matrices unidimensionnelles sont appelés ci-dessous matrices de données. Elles sont particulièrement adaptées aux échanges de données tabulaires avec des scripts Python et des feuilles Calc.

Invocation du service

Avant de pouvoir utiliser le service Array, la bibliothèque ScriptForge doit être chargée en utilisant :


    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
  

Charger la bibliothèque créera l'objet SF_Array qui peut être utilisé pour appeler les méthode dans le service Array.

Les extraits de code suivants montrent les différentes façons d'appeler des méthodes dans le service Array (la méthode Append est utilisée comme exemple) :


    Dim arr : arr = Array(1, 2, 3)
    arr = SF_Array.Append(arr, 4)
  

    Dim arr : arr = Array(1, 2, 3)
    Dim svc : svc = SF_Array
    arr = svc.Append(arr, 4)
  

    Dim arr : arr = Array(1, 2, 3)
    Dim svc : svc = CreateScriptService("Array")
    arr = svc.Append(arr, 4)
  
Icône Avertissement

Étant donné que Python a une prise en charge intégrée des listes et des tuples, la plupart des méthodes du service Array sont disponibles uniquement pour les scripts de base. La seule exception est ImportFromCSVFile qui est pris en charge à la fois par Basic et Python.


Liste des méthodes dans le service Array

Append
AppendColumn
AppendRow
Contains
ConvertFromDataArray
ConvertToDataArray
ConvertToDictionary
ConvertToRange
Copy
CountDims
Difference
ExportToTextFile

ExtractColumn
ExtractRow
Flatten
ImportFromCSVFile
IndexOf
Insert
InsertSorted
Intersection
Join2D
Prepend
PrependColumn
PrependRow

RangeInit
Reverse
Shuffle
Slice
Sort
SortColumns
SortRows
Transpose
TrimArray
Union
Unique


Icône Astuce

Le premier argument de la plupart des méthodes est l'objet matrice à prendre en compte. Il est toujours passé par référence et laissé inchangé. Les méthodes telles que Append, Prepend, etc. renvoient un nouvel objet matrice après leur exécution.


Append

Ajoute les éléments répertoriés comme arguments à la fin de la matrice d'entrée.

Syntaxe :

svc.Append(array_1d: any[0..*], arg0: any, [arg1: any] ...): any[0..*]

Paramètres :

array_1D : la matrice pré-existante, elle peut être vide.

arg0, arg1, ... : éléments qui seront ajoutés à array_1d.

Exemple :


    Dim a As Variant
    a = SF_Array.Append(Array(1, 2, 3), 4, 5)
        ' (1, 2, 3, 4, 5)
  

AppendColumn

Ajoute une nouvelle colonne sur le côté droit d'une matrice à deux dimensions. La matrice résultante a les mêmes limites inférieures que la matrice bidimensionnelle initiale.

Syntaxe :

svc.AppendColumn(array_2d: any[0..*, 0..*], column: any[0..*]): any[0..*, 0..*]

Paramètres :

array_2d : la matrice préexistante, elle peut être vide. Si cette matrice n'a qu'une dimension, elle est considérée comme la première colonne de la matrice bidimensionnelle résultante.

column : une matrice à 1 dimension avec autant d'éléments qu'il y a de lignes dans array_2D.

Exemple :


    Dim a As Variant, b As variant
    a = SF_Array.AppendColumn(Array(1, 2, 3), Array(4, 5, 6))
        ' ((1, 4), (2, 5), (3, 6))
    b = SF_Array.AppendColumn(a, Array(7, 8, 9))
        ' ((1, 4, 7), (2, 5, 8), (3, 6, 9))
    c = SF_Array.AppendColumn(Array(), Array(1, 2, 3))
        ' ∀ i ∈ {0 ≤ i ≤ 2} : b(0, i) ≡ i
  

AppendRow

Ajoutez une nouvelle ligne au bas d'une matrice à deux dimensions. La matrice résultante a les mêmes limites inférieures que la matrice initiale à deux dimensions.

Syntaxe :

svc.AppendRow(array_2d: any[0..*, 0..*], row: any[0..*]): any[0..*, 0..*])

Paramètres :

array_2D: la matrice préexistante, elle peut être vide. Si cette matrice a 1 dimension, elle est considérée comme la première ligne de la matrice à 2 dimensions résultante.

ligne : une matrice à 1 dimension avec autant d'éléments qu'il y a de colonnes dans array_2D.

Exemple :


    Dim a As Variant, b As variant
    a = SF_Array.AppendRow(Array(1, 2, 3), Array(4, 5, 6))
        '  ((1, 2, 3), (4, 5, 6))
    b = SF_Array..AppendRow(Array(), Array(1, 2, 3))
        ' ∀ i ∈ {0 ≤ i ≤ 2} : b(i, 0) ≡ i