Pannello di Controllo Moderatore ]

Interrogazione dimensioni Matrice

Creare una macro - Scrivere uno script - Usare le API

Interrogazione dimensioni Matrice

Messaggioda Logical Passion » giovedì 13 settembre 2018, 11:54

Buongiorno a tutti,

gentilmente qualcuno potrebbe indicarmi se in OpenOffice Basic esiste (e quale sia) una istruzione o comando per conoscere le dimensioni di una matrice?

Grazie, Marco
Logica e Metodo attributi della Ragione,
Intuizione ed Immaginazione attributi della Genialità,
Passione ed Amore la loro energia.

OpenOffice 4.1.5 Windows Seven
Logical Passion
 
Messaggi: 9
Iscritto il: giovedì 13 settembre 2018, 11:07

Re: Interrogazione dimensioni Matrice

Messaggioda charlie » giovedì 13 settembre 2018, 14:05

Ciao e benvenuto sul forum.
Se intanto ti vuoi presentare puoi farlo qui: https://forum.openoffice.org/it/forum/viewforum.php?f=16
Per una panoramica delle regole del forum consulta il Manuale di sopravvivenza: http://forum.openoffice.org/it/forum/viewtopic.php?f=1&t=2
Buon proseguimento.
charlie
macOS 10.12 Sierra: Open Office 4.1.5 - LibreOffice 5.4.3.2
Windows 7 pro (VirtualBox): Open Office 4.1.5 - LibreOffice 5.4.4.2
Ubuntu 17.04 LTE (VirtualBox): LibreOffice 5.1.6.2
http://www.charlieopenoffice.altervista.org
Avatar utente
charlie
Site Admin
Site Admin
 
Messaggi: 5238
Iscritto il: mercoledì 19 dicembre 2012, 11:50

Re: Interrogazione dimensioni Matrice

Messaggioda Logical Passion » giovedì 13 settembre 2018, 16:24

Buongiorno charlie,

ti ringrazio per l'accoglienza. Ho provveduto a presentarmi ed ho ridato uno sguardo ai titoli delle sezioni del manuale di sopravvivenza (n.d.r.: Titolo originale e simpatico!) che ritengo tutti atteggiamenti di buon senso.

Per quanto riguarda la richiesta che ha generato questo nuovo argomento, per chiarire l'ambito della domanda, aggiungo che nella guida di OpenOffice ho trovato i comandi LBound ed UBound che restituiscono i confini, inferiore e superiore, di una singola dimensione della matrice (un vettore della matrice).
Per conoscere il numero di dimensioni si potrbbe effettuare un ciclo di chiamate di uno di questi due comandi fino alla restituzione di un errore per aver eseguito l'interrogazione su di una dimensione inesistente ma, naturalmente, sarebbe molto più pratico poter ottenere il numeo di dimensioni (ed i relativi confini, magari anche solo il superiore, assumendo l'inferiore per defaul uguale a zero) con una singola istruzione.
Logica e Metodo attributi della Ragione,
Intuizione ed Immaginazione attributi della Genialità,
Passione ed Amore la loro energia.

OpenOffice 4.1.5 Windows Seven
Logical Passion
 
Messaggi: 9
Iscritto il: giovedì 13 settembre 2018, 11:07

Re: Interrogazione dimensioni Matrice

Messaggioda patel » giovedì 13 settembre 2018, 17:32

Di solito è il programmatore che dimensiona le matrici che intende utilizzare, talvolta la matrice è il risultato di una lettura da un range di celle ed in questo caso è necessario utilizzare LBound ed UBound, ma la matrice è sempre bidimensionale. Potresti fare un esempio che illustra il tuo problema ?
Comunque prova questa macro
Codice: Seleziona tutto   Espandi visualeStringi visuale
Sub testing()
  Dim arr(1 To 3, 1 To 10, 1 To 5)
  MsgBox NumberOfDimensions(arr)
End Sub

Function NumberOfDimensions(arr As Variant) As Long
  If IsArray(arr) Then
    On Error GoTo Done
    Do
      NumberOfDimensions = NumberOfDimensions + 1
    Loop While IsNumeric(UBound(arr, NumberOfDimensions))
  End If
Done: NumberOfDimensions = NumberOfDimensions - 1
End Function
-------------------
OpenOffice 4.1 e Libre Office 6 su Windows 10
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
patel
Volontario attivo
Volontario attivo
 
Messaggi: 2892
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Interrogazione dimensioni Matrice

Messaggioda Logical Passion » venerdì 14 settembre 2018, 9:44

Ciao Patel,

ti ringrazio per la tua risposta, credo tu abbia colto il nocciolo della questione quando hai scritto "talvolta la matrice è il risultato di una lettura da un range di celle ed in questo caso è necessario utilizzare LBound ed UBound" che effettivamente già svolgono la funzione di cui necessito.
Ignorando l'esistenza di questi due comandi mi stavo documentando sulle matrici e, quando sono giunto ad essi, avendo prima letto riguardo la possibile pluralità di dimensioni oltre le due classiche, ho iniziato a chiedermi se fosse possibile eseguire interrogazioni anche in merito al numero delle dimensioni.
Logica e Metodo attributi della Ragione,
Intuizione ed Immaginazione attributi della Genialità,
Passione ed Amore la loro energia.

OpenOffice 4.1.5 Windows Seven
Logical Passion
 
Messaggi: 9
Iscritto il: giovedì 13 settembre 2018, 11:07


Torna a Macro e UNO API

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite