Zuweisung von Werten für die Elemente eines Arrays

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Zuweisung von Werten für die Elemente eines Arrays

Beitrag von arkadiuszpaluszek »

Hallo!


Hier ein kleiner Ausschnitt des Codes:

Code: Alles auswählen

dim id_eintrag(1000)
dim id_kind(1000)
dim eintrag(1000)
dim datum(1000)
dim details(1000,1000)

 Do while oErgSet.Next()
         'On Error Resume Next
         id_eintrag(oErgSet.row-1)=oErgSet.getInt(col_id_eintrag)
         id_kind(oErgSet.row-1)=oErgSet.getInt(col_kind)
         eintrag(oErgSet.row-1)=oErgSet.getString(col_eintrag)
         datum(oErgSet.row-1)=oErgSet.getString(col_datum)
            
            myCounter=oErgSet.row-1
            
            msgbox myCounter
            msgbox eintrag(myCounter)
      loop
   
   ' Schleife zu Debuggingzwecken:
   for x=0 to 3
   msgbox " Beim x="+x+" ist der Eintrag:"+eintrag(x)
   next x
   
   end if   
Das Problem ist folgendes: in der while-loop Schleife werden bestimmten arrays (u.a. dem array "eintrag") bestimmte Werte zugeordnet. Die in der while - loop Schleife enthaltenen Messageboxen zeigen, dass die Argumente aus der DB richtig gelesen werden, das array eintrag() müsste an den Positionen 0 bis 3 unterschiedliche Einträge haben. Weiter unten folgt allerdings die Schleife "for x=0 to 3" welche wieder die Werte des Arrays an den jeweiligen Positionen abfragt - hier ist erstaunlicherweise an allen 4 Positionen nur der letzte Eintrag zu finden, den es nur an der Position eintrag(3) geben dürfte.

Habe es unter Mac OS Mountain Lion und unter Win7 mit LO 3.5 getestet. Jemand anderer testete ein geradezu identisches Skript mit LO 3.3 und es funktioniert, s. LO-Forum: http://www.libreoffice-forum.de/viewtop ... 390#p18390. Wie man in der angehängten Datei jedoch erkennen kann, ist bei mir irgendwo ein Fehler drin.

Gruß

Arek
Zuletzt geändert von arkadiuszpaluszek am Di, 25.12.2012 22:14, insgesamt 2-mal geändert.
arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Re: Zuweisung von Werten für die Elemente eines Arrays

Beitrag von arkadiuszpaluszek »

Bin dem Problem ein bisschen näher gekommen: irgendwie wird jedes mal, wenn die Schleife durchläuft, der Wert nicht nur einer bestimmten Position des Arrays zugeteilt sondern ALLEN, habe das Skript folgendermaßen abgeändert:

Code: Alles auswählen

	
        if not isNull(oErgSet) then
	col_id_eintrag=oErgSet.findColumn("ID")
	col_kind=oErgSet.findColumn("ID_Kind")
	col_eintrag=oErgSet.findColumn("Eintrag")
	col_datum=oErgSet.findColumn("Datum")
	
		Do while oErgSet.Next()
			'On Error Resume Next
			id_eintrag(0)=oErgSet.getInt(col_id_eintrag)
			id_kind(0)=oErgSet.getInt(col_kind)
			eintrag(0)=oErgSet.getString(col_eintrag)
			datum(0)=oErgSet.getString(col_datum)
				
				myCounter=oErgSet.row-1
				
				msgbox "Aktueller Counter ist "+myCounter
				msgbox "Und damit der aktuelle Eintrag"+eintrag(myCounter)
					' Schleife zu Debuggingzwecken:
					for x=0 to 3
					msgbox " Beim x="+x+" ist der Eintrag:"+eintrag(x)
					next x
		loop

	end if	
Nun zeigt sich, dass bereits beim ersten Durchlauf der Schleife die ersten vier Positionen des Arrays mit dem entsprechenden Eintrag besetzt werden, obwohl ich diesmal in Klammern explizit "0" angebe - warum der Eintarg dann unter eintrag(1) und eintrag(2) etc. ebenso zu finden ist, ist mir ein Mysterium.

Gruß

Arek
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Zuweisung von Werten für die Elemente eines Arrays

Beitrag von DPunch »

Servus

Du solltest Du auf diese Zeile

Code: Alles auswählen

eintrag="Teamsitzung vom "+myDatum2
verzichten, wenn Du die Variable anschliessend als Array verwenden willst, denn genau ab hier hast Du es nur noch mit einem einfachen String zu tun.
Der Zugriff über den Index wird kommentarlos übergangen, wenn die Variable keinen byIndex-Zugriff erlaubt.
arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Re: Zuweisung von Werten für die Elemente eines Arrays

Beitrag von arkadiuszpaluszek »

Auuuuuuutsch!!! Genau so ist es, vielen Dank! :D
Benutzeravatar
boser
*****
Beiträge: 264
Registriert: Mi, 02.09.2009 08:28
Kontaktdaten:

Re: Zuweisung von Werten für die Elemente eines Arrays

Beitrag von boser »

Hallo,

was ist das http://www.libreoffice-forum.de/viewtop ... 12&t=11414 , möchtest du gerne viel leute beschäftigen. :evil:

Bitte endschiede dich , wo du welche infos bekommen möchtest.
mfg
boser

linux suse 11.4 / 12.2 ; LibreOffice 3.4.2
taylor56
Beiträge: 3
Registriert: Mi, 30.10.2013 13:06

Re: Zuweisung von Werten für die Elemente eines Arrays

Beitrag von taylor56 »

Danke schon :) ihr habt mir geholfen, mein problem zu losen :)
CalcWeiss
**
Beiträge: 32
Registriert: Sa, 17.08.2013 13:26

Re: Zuweisung von Werten für die Elemente eines Arrays

Beitrag von CalcWeiss »

Das Libreoffice-Forum kannte ich bisher nicht. Wo bekommt man denn eher Hilfe? Doppelposten möchte ich ja wirklich nicht.
Win-XP32, LO4.1.1.2 (en)
Karolus
********
Beiträge: 7454
Registriert: Mo, 02.01.2006 19:48

Re: Zuweisung von Werten für die Elemente eines Arrays

Beitrag von Karolus »

Hallo
Die meisten Aktiven schauen inzwischen in beide Foren, poste halt einmal und gut.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Antworten