🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 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
* LO-Experte *
Beiträge: 1930
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
* LO-Experte *
Beiträge: 1930
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 gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten