Tableau

Commande de compilation

Dans le menu Project - References de Visual Basic, il faut importer les déclarations du module Up ! Kernel en cochant la case correspondante.

Commande d'enregistrement des ActiveX

upsvtm Com=Charger

Commande d'exécution

tableau.exe

Fichier source

Const ClonageObjetSeul As Integer = 1
Const ClonageObjetsDirects As Integer = 1
Const ClonageRecursif As Integer = 1

Dim MUpsKrn As IUpsKrn

Private Sub EcrireEcran(ByVal Libelle As String)
' ==============================================
Ecran.AddItem Libelle
End Sub

Private Sub EcrireTableau(ByVal M As IUpsKrnCaractere, ByVal T As IUpsKrnTableau)
' ===============================================================================
Dim I As Integer

On Error GoTo GestionErreur

EcrireEcran MUpsKrn.Caractere2ComBStr(M)
I = T.BorneMin
Do Loop
EcrireEcran "
Exit Sub

GestionErreur:
'=============
EcrireEcran Erreur UpsKrn-0 : L'exception suivante a été envoyée dans le source '" + Err.Source + "' :"
EcrireEcran Err.Description
End Sub

Private Sub EcrireEntier(ByVal M As IUpsKrnCaractere, ByVal E As IUpsKrnEntier)
' =============================================================================
On Error GoTo GestionErreur

EcrireEcran MUpsKrn.Caractere2ComBStr(M)
EcrireEcran Str$(MUpsKrn.Entier2ComInt(E))
EcrireEcran "
Exit Sub

GestionErreur:
'=============
EcrireEcran Erreur UpsKrn-0 : L'exception suivante a été envoyée dans le source '" + Err.Source + "' :"
EcrireEcran Err.Description
End Sub

Private Function IncrementerElementTableau(ByVal T As IUpsKrnTableau, ByVal Index As IUpsKrnEntier, ByVal Prefixe As Boolean) As IUpsKrnEntier
' ============================================================================================================================================
Dim E As Object

On Error GoTo GestionErreur

Set E = T.Index(Index).Incrementer(Prefixe)
Set IncrementerElementTableau = E
Exit Function

GestionErreur:
'=============
EcrireEcran Erreur UpsKrn-0 : L'exception suivante a été envoyée dans le source '" + Err.Source + "' :"
EcrireEcran Err.Description
End Function

Private Function DecrementerElementTableau(ByVal T As IUpsKrnTableau, ByVal Index As IUpsKrnEntier, ByVal Prefixe As Boolean) As IUpsKrnEntier
' ============================================================================================================================================
Dim E As Object

On Error GoTo GestionErreur

Set E = T.Index(Index).Decrementer(Prefixe)
Set DecrementerElementTableau = E
Exit Function

GestionErreur:
'=============
EcrireEcran Erreur UpsKrn-0 : L'exception suivante a été envoyée dans le source '" + Err.Source + "' :"
EcrireEcran Err.Description
End Function

Private Sub AdditionnerAffecterElementTableau(ByVal T As IUpsKrnTableau, ByVal Index As IUpsKrnEntier, ByVal E As IUpsKrnEntier)
' ==============================================================================================================================
On Error GoTo GestionErreur

T.Index2 Index, T.Index(Index).Additionner(E)
Exit Sub

GestionErreur:
'=============
EcrireEcran Erreur UpsKrn-0 : L'exception suivante a été envoyée dans le source '" + Err.Source + "' :"
EcrireEcran Err.Description
End Sub

Private Sub Form_Load()
' =====================
Dim T As IUpsKrnTableau
Dim T2 As IUpsKrnTableau
Dim T3 As IUpsKrnTableau
Dim C As IUpsKrnCaractere
Dim T4 As IUpsKrnTableau

On Error GoTo GestionErreur

Set MUpsKrn = CreateObject("UpsApp.UpsKrn")

Set T = MUpsKrn.Tableau1(10, MUpsKrn.ComBStr2Caractere("))
Set T2 = MUpsKrn.Tableau2(1, 3, MUpsKrn.ComBStr2Caractere("))
Set T3 = Nothing
Set T4 = MUpsKrn.Tableau1(1, MUpsKrn.ComInt2Entier(0))

Set C = MUpsKrn.ComBStr2Caractere("a")
T.Index2 MUpsKrn.ComInt2Entier(0), C
T.Index2 MUpsKrn.ComInt2Entier(1), MUpsKrn.ComBStr2Caractere("A")
T.Index2 MUpsKrn.ComInt2Entier(2), C
T.Index2 MUpsKrn.ComInt2Entier(3), MUpsKrn.ComBStr2Caractere("B")
T.Index2 MUpsKrn.ComInt2Entier(4), C
T.Index2 MUpsKrn.ComInt2Entier(5), MUpsKrn.ComBStr2Caractere("C")
EcrireTableau MUpsKrn.ComBStr2Caractere("Construction"), T
T2.Index2 MUpsKrn.ComInt2Entier(1), MUpsKrn.ComBStr2Caractere("X")
T2.Index2 MUpsKrn.ComInt2Entier(2), MUpsKrn.ComBStr2Caractere("Y")
T2.Index2 MUpsKrn.ComInt2Entier(3), MUpsKrn.ComBStr2Caractere("Z")
EcrireTableau MUpsKrn.ComBStr2Caractere("Inserer"), T.Cloner(MUpsKrn.ObjetNul, ClonageObjetSeul).Inserer(T2, MUpsKrn.ComInt2Entier(2))
EcrireEcran MUpsKrn.Entier2ComInt(T.Compter(C, MUpsKrn.ComInt2Entier(0)))
EcrireEcran MUpsKrn.Entier2ComInt(T.Compter(C, MUpsKrn.ComInt2Entier(1)))
Set T3 = T.Cloner(MUpsKrn.ObjetNul, ClonageObjetSeul)
EcrireTableau MUpsKrn.ComBStr2Caractere("Remplacer"), T3.RemplacerTous(C, MUpsKrn.ComBStr2Caractere("X"), MUpsKrn.ComInt2Entier(0))
Set T3 = T.Cloner(MUpsKrn.ObjetNul, ClonageObjetSeul)
EcrireTableau MUpsKrn.ComBStr2Caractere("Remplacer"), T3.RemplacerTous(C, MUpsKrn.ComBStr2Caractere("X"), MUpsKrn.ComInt2Entier(2))
EcrireEcran MUpsKrn.Entier2ComInt(T.Rechercher(C, MUpsKrn.ComInt2Entier(0)))
EcrireEcran MUpsKrn.Entier2ComInt(T.Rechercher(C, MUpsKrn.ComInt2Entier(1)))
EcrireTableau MUpsKrn.ComBStr2Caractere("Supprimer"), T.SupprimerTous(C, MUpsKrn.ComInt2Entier(0))
EcrireTableau MUpsKrn.ComBStr2Caractere("Supprimer"), T.SupprimerTous(C, MUpsKrn.ComInt2Entier(2))
Set T3 = T.Cloner(MUpsKrn.ObjetNul, ClonageObjetSeul).Retailler(20, MUpsKrn.Caractere1)
EcrireTableau MUpsKrn.ComBStr2Caractere("Retailler(20)"), T3
Set T3 = T.Cloner(MUpsKrn.ObjetNul, ClonageObjetSeul).Retailler(2, MUpsKrn.Caractere1)
EcrireTableau MUpsKrn.ComBStr2Caractere("Retailler(2)"), T3
T4.Index2 MUpsKrn.ComInt2Entier(0), MUpsKrn.ComInt2Entier(1)
EcrireEntier MUpsKrn.ComBStr2Caractere("[]++"), IncrementerElementTableau(T4, MUpsKrn.ComInt2Entier(0), False)
EcrireEntier MUpsKrn.ComBStr2Caractere("[]--"), DecrementerElementTableau(T4, MUpsKrn.ComInt2Entier(0), False)
EcrireEntier MUpsKrn.ComBStr2Caractere("++[]"), IncrementerElementTableau(T4, MUpsKrn.ComInt2Entier(0), True)
EcrireEntier MUpsKrn.ComBStr2Caractere("--[]"), DecrementerElementTableau(T4, MUpsKrn.ComInt2Entier(0), True)
T4.Index2 MUpsKrn.ComInt2Entier(0), T4.Index(MUpsKrn.ComInt2Entier(0)).Additionner(MUpsKrn.ComInt2Entier(1))
EcrireEntier MUpsKrn.ComBStr2Caractere("[]+1"), T4.Index(MUpsKrn.ComInt2Entier(0))
AdditionnerAffecterElementTableau T4, MUpsKrn.ComInt2Entier(0), MUpsKrn.ComInt2Entier(1)
EcrireEntier MUpsKrn.ComBStr2Caractere("[]+=1"), T4.Index(MUpsKrn.ComInt2Entier(0))
T4.Index2 MUpsKrn.ObjetNul, MUpsKrn.ComInt2Entier(10)
EcrireEntier MUpsKrn.ComBStr2Caractere("[Nul]=10"), T4.Index(MUpsKrn.ObjetNul)
EcrireEntier MUpsKrn.ComBStr2Caractere("[Nul]++"), IncrementerElementTableau(T4, MUpsKrn.ObjetNul, False)
EcrireEntier MUpsKrn.ComBStr2Caractere("[Nul]--"), DecrementerElementTableau(T4, MUpsKrn.ObjetNul, False)
T4.Index2 MUpsKrn.ObjetNul, T4.Index(MUpsKrn.ObjetNul).Additionner(MUpsKrn.ComInt2Entier(1))
EcrireEntier MUpsKrn.ComBStr2Caractere("[Nul]+1"), T4.Index(MUpsKrn.ObjetNul)
AdditionnerAffecterElementTableau T4, MUpsKrn.ObjetNul, MUpsKrn.ComInt2Entier(1)
EcrireEntier MUpsKrn.ComBStr2Caractere("[Nul]+=1"), T4.Index(MUpsKrn.ObjetNul)

Set T = Nothing
Set T2 = Nothing
Set T3 = Nothing
Set C = Nothing
Set T4 = Nothing
Set MUpsKrn = Nothing
Exit Sub

GestionErreur:
'=============
EcrireEcran Erreur UpsKrn-0 : L'exception suivante a été envoyée dans le source '" + Err.Source + "' :"
EcrireEcran Err.Description
End Sub