vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
SEPA-Dateien erstellen inkl. IBAN-, BLZ-/Kontonummernprüfung  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Dimension einer mehrdimensionalen Array ermitteln 
Autor: I.V.
Datum: 03.11.17 07:38

Hallo zusammen,

kann ich irgendwie die Anzahl der Dimensionen einer mehrdimensionalen Array ermitteln?

Danke und Gruß Ingo

Wer aufhört sich zu verbessern, hört auf gut zu sein.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dimension einer mehrdimensionalen Array ermitteln 
Autor: Manfred X
Datum: 03.11.17 08:27

Hallo!

Eigentlich sollte man wissen, wie ein als Parameter
gegebenes Array dimensioniert ist.
Falls es möglich ist, daß ein falsch dimensioniertes Array
an eine Routine übergeben wird, sollte man dort eine "On Error Goto"-
Anweisung einbauen.

Du kannst aber z.B. die SafeArray-Struktur auswerten.
https://stackoverflow.com/questions/6901991/how-to-return-the-number-of-dimensions-of-a-variant-variable-passed-to-it-in-vHallo!
Hinweise in der Antwort ziemlich am Ende des Themas.
Oder den entsprechenden ExtraTipp im Vb@Archiv anschauen.

Beitrag wurde zuletzt am 03.11.17 um 08:38:01 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dimension einer mehrdimensionalen Array ermitteln 
Autor: effeff
Datum: 03.11.17 10:37

Mit Ubound: https://msdn.microsoft.com/de-de/library/microsoft.visualbasic.information.ubound(v=vs.110).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dimension einer mehrdimensionalen Array ermitteln 
Autor: Franki
Datum: 06.11.17 02:11

Hallo Ingo,
arbeitest du mit VB Classic oder VB.NET?
Die Antworten die du erhalten hast beziehen sich ja auf .NET

Ubound (und Lbound) beziehen sich aber nicht auf die Dimension eines Arrays sondern auf die Anzahl der Elemente die im Array enthalten sind. Also nicht darauf wie viele Ebenen ein Element haben kann.

Beschreibe doch mal etwas genauer was du wissen möchtest am besten anhand eines kleinen Beispiels wie du ein Array Dimensionierst, und mit Daten füllst.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dimension einer mehrdimensionalen Array ermitteln 
Autor: Manfred X
Datum: 06.11.17 02:54

Hallo!

Meine oben gegebene Antwort bezieht sich ausschließlich auf VBA/VB6 !!

In VB.Net besitzen Arrays für diesen Zweck die Rank-Eigenschaft!
  'Nur VB.Net !!!!!
  Dim arr(1, 2, 3) As String
  Dim rnk As Integer = arr.Rank '=3
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dimension einer mehrdimensionalen Array ermitteln 
Autor: I.V.
Datum: 06.11.17 07:01

Moin zusammen,

Danke erst mal für eure schnelle Unterstützung.
Euer Engagement find ich bemerkenswert

@Manfred, Da ich das Array in mehreren Funktionen benutze und neu generiere hatte ich den Überblick verloren. Die Dimensionen hatte ich dann immer fest im Code.
Jetzt benutze ich hierfür ne Variable.
Die kann ich dann abfragen.

Allerdings funktioniert die Funktion aus deinem Hinweis auch super:

'Array Dimensionen ermitteln
Function ArrayDimension(ByRef ArrayX As Variant) As Byte
    Dim i As Integer, a As String, arDim As Byte
    On Error Resume Next
    i = 0
    Do
        a = CStr(ArrayX(0, i))
        If err.Number > 0 Then
            arDim = i
            On Error GoTo 0
            Exit Do
        Else
             i = i + 1
        End If
    Loop
    If arDim = 0 Then arDim = 1
    ArrayDimension = arDim
End Function
@Franki, leider noch mit VB Classic. Für den Umstieg fehlt mir etwas die Zeit.
Ich versuche mich gerade an Laravel, aber da muss man auch die Zeit finden.


Danke und Gruß Ingo

Wer aufhört sich zu verbessern, hört auf gut zu sein.

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Dimension einer mehrdimensionalen Array ermitteln 
Autor: Franki
Datum: 08.11.17 00:49

Hallo ManfredX,

sorry, war mein Fehler, habe auf den falschen Beitrag geantwortet. Das mit dem Ubound war ja die Antwort von effeff, auf die wollte ich eigentlich antworten.

Du hast mit deinem Link natürlich völlig recht, dass er sich auf VB-Classic bezieht.

Gruß
Frank
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel