Hallo,
dies ist ein Crossposting:
https://ask.libreoffice.org/de/question ... on-arrays/
Weil ich dort keine Antwort bekomme, hoffe ich, dass mir hier jemand weiterhelfen kann.
Alle Info's und eine Musterdatei befinden sich auf LibreOffice-ASK.
Problem besteht für mich unter AOO, als auch LibO.
Gruß
Craig
[gelöst] Calc: Dimensionierung und Deklaration von Array's
Moderator: Moderatoren
[gelöst] Calc: Dimensionierung und Deklaration von Array's
Zuletzt geändert von craig22 am Do, 20.08.2020 15:58, insgesamt 1-mal geändert.
Gruß
Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Re: Calc: Dimensionierung und Deklaration von Array's
Ich hatte das Thema erst vor einiger Zeit ausführlich erläuter, aber ich finde meinen eigenen Beitrag nicht wieder.
Eigentlich ist die Situation recht einfach, denn man muss lediglich verstehen das es sich um Arrays in Arrays handelt. WEnn Du bei ask.libreoffice schreibst:
Gruß
Stephan
Eigentlich ist die Situation recht einfach, denn man muss lediglich verstehen das es sich um Arrays in Arrays handelt. WEnn Du bei ask.libreoffice schreibst:
dann ginge das formal so:Jetzt benötige ich ein kleineres Array mit einer Zeile und zwei Spalten
Code: Alles auswählen
Dim meinArray(0) As Variant
Dim meinArray2(1) As Variant
meinArray2(0) = 123
meinArray2(1) = "abc"
meinArray(0) = meinArray2
'in Tabelle schreiben
ThisComponent.Sheets().GetbyIndex(0).getCellRangeByName("A1:B1").setDataArray(meinArray)
Gruß
Stephan
Re: Calc: Dimensionierung und Deklaration von Array's
Hallo Stephan,
vielen, vielen Dank.
Weder in den Handbüchern, noch in den Foren.
Habe auch nach Arrays von Arrays gesucht.
Naja, Deine Lösung funktioniert jedenfalls.
Was ich noch nicht verstanden habe ist:
Wenn ich "Arrays von Arrays" aus einem Sheet per getDataArray bilde, dann wird mir im Beobachter der Datentyp "Object(...)" angezeigt.
In Deinem Code hast Du "Variant" verwendet.
Habe Deinen Code auch mal mit "Object(...)" getestet.
Funktioniert beides tadellos, aber warum ist "Arrays von Arrays" ein Object?
Ein Geheimnis der Entwickler?
vielen, vielen Dank.
Ich war mir auch sicher, dass ich etwas darüber gelesen habe und fand es nicht wieder.Stephan hat geschrieben:Ich hatte das Thema erst vor einiger Zeit ausführlich erläuter, aber ich finde meinen eigenen Beitrag nicht wieder.
Weder in den Handbüchern, noch in den Foren.
Habe auch nach Arrays von Arrays gesucht.
Naja, Deine Lösung funktioniert jedenfalls.
Was ich noch nicht verstanden habe ist:
Wenn ich "Arrays von Arrays" aus einem Sheet per getDataArray bilde, dann wird mir im Beobachter der Datentyp "Object(...)" angezeigt.
In Deinem Code hast Du "Variant" verwendet.
Habe Deinen Code auch mal mit "Object(...)" getestet.
Funktioniert beides tadellos, aber warum ist "Arrays von Arrays" ein Object?
Ein Geheimnis der Entwickler?
Gruß
Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Re: Calc: Dimensionierung und Deklaration von Array's
Kann ich eigentlich nichts dazu sagen, ich arbeite nicht mit dem Beobachter.Wenn ich "Arrays von Arrays" aus einem Sheet per getDataArray bilde, dann wird mir im Beobachter der Datentyp "Object(...)" angezeigt.
Ich habe Variant nur verwendet um zu demonstrieren das mit .setDataArray() WErte wie Texte gleichzeitig übergeben werden können und um hier wirklich explizit einen Typ anzugeben. Damit will ich nur sagen das das Variant an dieser Stelle nicht zwingend wäre(*) und ich es normalerweise wegließe.In Deinem Code hast Du "Variant" verwendet.
Habe Deinen Code auch mal mit "Object(...)" getestet.
Funktioniert beides tadellos, aber warum ist "Arrays von Arrays" ein Object?
(*)
z.B. ist die explizite Deklaration als Variant bei der NUtzung von Tabellenfunktionen in StarBasic nötig - im Zweifel gibt es dort aber Ausnahmen, was dort aber degfinitiv als Fehler zu betrachten wäre
(Ich erwähne das nur beispielhaft, sofern bei Dir die Frage aufkäme wo denn eine explizite Variant-Deklaration zwingend wäre)
Warum es mit Object geht kann ich nicht sagen, eigentlich erscheint mir das falsch. Meiner Meinung nach ist aber in jedem Fall die Erklärung 'Object WEIL Array in Array' falsch, weil die Arrays ja separat deklariert sind und nichts voneinander wissen können. Ich wüsste auch nicht wie man so etwas zusammenhängend deklarieren sollte.
Gruß
Stephan
[gelöst] Re: Calc: Dimensionierung und Deklaration von Array's
Hallo Stephan,
Dein Array per XRAY ausgelesen:
Der Datentyp "Object" ist mir bei meinen vielfältigen erfolglosen Versuchen auf gefallen. Bei meiner Suche
habe ich bisher nirgends einen Hinweis darauf gefunden, warum hier dieser Datentyp automatisch verwendet.
Macht nichts, Hauptsache es funktioniert wie gewünscht.
Ich bin Dir sehr dankbar, dass ich endlich eine Lösung für mein Problem habe.
Gruß
Craig
Auch XRAY zeigt mir das per getDataArray erzeugte Array als Object an.Kann ich eigentlich nichts dazu sagen, ich arbeite nicht mit dem Beobachter.
Code: Alles auswählen
Tabelle : T( 0 To 2 ) As object
(0) | Tabelle : T( 0 To 1 ) As variant
(1) | Tabelle : T( 0 To 1 ) As variant
(2) | Tabelle : T( 0 To 1 ) As variant
Code: Alles auswählen
Tabelle : T( 0 To 0 ) As variant
(0) | Tabelle : T( 0 To 1 ) As variant
Ich kann nicht beurteilen ob dieses falsch ist, zumindest sehr seltsam. Betrifft übrigens AOO und LibO.Warum es mit Object geht kann ich nicht sagen, eigentlich erscheint mir das falsch. Meiner Meinung nach ist aber in jedem Fall die Erklärung 'Object WEIL Array in Array' falsch, weil die Arrays ja separat deklariert sind und nichts voneinander wissen können. Ich wüsste auch nicht wie man so etwas zusammenhängend deklarieren sollte.
Der Datentyp "Object" ist mir bei meinen vielfältigen erfolglosen Versuchen auf gefallen. Bei meiner Suche
habe ich bisher nirgends einen Hinweis darauf gefunden, warum hier dieser Datentyp automatisch verwendet.
Macht nichts, Hauptsache es funktioniert wie gewünscht.
Ich bin Dir sehr dankbar, dass ich endlich eine Lösung für mein Problem habe.
Gruß
Craig
Gruß
Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8
Craig
_____________________________________________________
WIN 10 Pro 64-Bit • LO 7.1.5.2 (x64) • AOO 4.1.8