BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Array in Type

Alles zur Programmierung im LibreOffice.
Antworten
Magier
Beiträge: 4
Registriert: Do 13. Feb 2020, 08:37

Array in Type

Beitrag von Magier » Mi 23. Mär 2022, 13:00

Hallo

ich wollte ein Array von Objekten, die selber ein Array enthalten. Nur geht das nicht.

Code: Alles auswählen

REM  *****  BASIC  *****

Type obj_In
	int_ID As Integer
	str_Text_In As String
End Type

Type obj_Out
	int_ID As Integer
	str_Text As String
	arr_In(10) As obj_In
End Type

Global arr_A(10) As obj_Out

Sub Main
	S_Init()	
End Sub

Sub S_Init()
	Dim int_run_Out As Integer
	For int_run_Out = 0 to 9
		Dim int_run_In As Integer
		arr_A(int_run_Out).int_ID    = inr_run_Out
		arr_A(Int_run_Out).str_Text = "Test"
		For int_run_In = 0 to 9
			arr_A(int_run_Out).arr_In(int_run_In).int_ID = int_run_In
			arr_A(int_run_Out).arr_In(int_run_In).str_Text_In = ""
		Next int_run_In
	Next int_run_Out	
End Sub
Nun ist zur Laufzeit Array im Objekt "obj_Out", gar kein Array. So sieht es wenigstens im Debug aus.
Trotzdem geht ein Zugriff auf das Array im Objekt.

Code: Alles auswählen

arr_A(0).arr_In(0).int_ID    IST 9
arr_A(0).arr_In(6).int_ID    IST 9
arr_A(2).arr_In(6).int_ID    IST 9
Meine Frage ist jetzt. Geht das überhaupt? Ein Array in einem Typed-Objekt?

MfG und so

Magier

mikele
Beiträge: 1642
Registriert: Mo 1. Aug 2011, 20:51

Re: Array in Type

Beitrag von mikele » Mi 23. Mär 2022, 22:09

Hallo,
Meine Frage ist jetzt. Geht das überhaupt? Ein Array in einem Typed-Objekt?
Trotzdem geht ein Zugriff auf das Array im Objekt.
Leider nur scheinbar, den es dürfte ja nicht immer der Wert 9 erscheinen.
Mit einem kleinen Umweg geht trotzdem ein Array da hinein zu bekommen.

Code: Alles auswählen

Type obj_In
	int_ID As Integer
	str_Text_In As String
End Type

Type obj_Out
	int_ID As Integer
	str_Text As String
	arr_In As Variant
End Type

Global arr_A(10) As obj_Out



Sub S_Init()
	globalscope.basiclibraries.loadlibrary("MRILib")
	Dim int_run_Out As Integer
	dim tmp(10) as obj_In
	For int_run_Out = 0 to 9
		Dim int_run_In As Integer
		arr_A(int_run_Out).int_ID    = inr_run_Out
		arr_A(Int_run_Out).str_Text = "Test"
		
		For int_run_In = 0 to 10
			tmp(int_run_In).int_ID = int_run_In
			tmp(int_run_In).str_Text_In = "test" & int_run_In
		Next int_run_In
		arr_A(int_run_Out).arr_In=tmp
	Next int_run_Out

End Sub
Gruß,
mikele

Magier
Beiträge: 4
Registriert: Do 13. Feb 2020, 08:37

Re: Array in Type

Beitrag von Magier » Do 24. Mär 2022, 11:41

Hallo mikele

DANKE! So geht es.

Code: Alles auswählen

...As Variant
Da muss man erst mal drauf kommen. Schräger Weg....

DANKE!!!!!!!!!!!!!

mikele
Beiträge: 1642
Registriert: Mo 1. Aug 2011, 20:51

Re: Array in Type

Beitrag von mikele » Fr 25. Mär 2022, 10:28

Hallo,
der Tipp stammt von hier:
"BASIC-Makros für OpenOffice und LibreOffice" von Volker Lenhardt
https://www.uni-due.de/~abi070/ooo.html
Kapitel 3.3.8
Gruß,
mikele

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten