Autor Thema: Objekt als Listenelement  (Gelesen 2000 mal)

Offline oxyd21

  • Senior Mitglied
  • ****
  • Beiträge: 371
  • Geschlecht: Männlich
Objekt als Listenelement
« am: 26.07.10 - 14:02:30 »
Hallo,

folgendes Problem: Ich muss über 'zig Dokumente rattern um diese jeweils zu klassifizieren.
Da ich dafür ein dreidimensionales Array bräuchte, was mir vor allem beim einsortieren Probleme machen dürfte, habe ich an eine Liste gedacht. Diese Liste ist als Klasse definiert. Da hinein könnte ich alle benötigten Informationen packen.

Code
Dim tmpList List As ExtractObject

Das Objekt der Liste:
Code
Class ExtractObject
	
Private intCategory As Integer
	
...

Property Set Category As String
	Me.intCategory = Category
End Property

End Class

Normalerweise würde man bei einem "einfachen" Datentyp "tmpList("XYZ") = 1" verwenden. Wie komme ich jedoch jetzt an das Objekt?

Viele Grüße,
Michael


Offline Andrew Harder

  • Senior Mitglied
  • ****
  • Beiträge: 295
  • Geschlecht: Männlich
Re: Objekt als Listenelement
« Antwort #1 am: 26.07.10 - 14:56:12 »
Code
Class ExtractObject
	
	Private strCategory As String
	
	Property Set Category As String
		Me.strCategory = Category
	End Property
	
	Property Get Category As String
		Category = Me.strCategory
	End Property
	
End Class

Code
	Dim tmpList List As ExtractObject
	Dim tmp As ExtractObject
	
	Set tmp = New ExtractObject
	If Not Iselement( tmpList( "XYZ" ) ) Then
		Set tmpList( "XYZ" ) = tmp
	End If
	
	tmpList( "XYZ" ).Category = "Hallo Welt!"
	
	Print tmpList( "XYZ" ).Category

Einfach das Objekt zuweisen und mit tmpList( "XYZ" ) wie mit dem Ausgangsobjekt arbeiten, welche die Liste ja auch zurückliefert.


Hope this could help.
Andy

Offline atbits

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • sei Du selbst die Veränderung, die Du Dir wünschst
    • atBits
Re: Objekt als Listenelement
« Antwort #2 am: 26.07.10 - 15:08:00 »
Moment, das hab ich jetzt aber noch nicht verstanden.

Warum nimmst Du keine DocumentCollection?

Da kann man dann auch ganz einfach "drüberrattern"

Und dann kannst Du das Category-Field entweder einzeln setzen, wenn die sich unterscheiden oder per stampAll alle gleichzeitig ...

Grüße David
David Schiffer
================================
atBits GmbH & Co. KG - https://atbits.de
im Einsatz: Lotus Domino 8.5, 9, 10

Offline oxyd21

  • Senior Mitglied
  • ****
  • Beiträge: 371
  • Geschlecht: Männlich
Re: Objekt als Listenelement
« Antwort #3 am: 26.07.10 - 15:15:09 »
tmpList( "XYZ" ).Category = "Hallo Welt!"

Hmm, sieht logisch aus. Muss ich mal probieren. Danke.


@David:
Ich hab zwei DocumentCollection die ich durcharbeiten muss, die diverse Informationen enthalten. Diese sollen in den neuen Objekt gespeichert werden. Die Liste hat den Vorteil, dass ich es so schnell mappen kann, ohne irgendwas sortieren zu müssen.

Offline atbits

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • sei Du selbst die Veränderung, die Du Dir wünschst
    • atBits
Re: Objekt als Listenelement
« Antwort #4 am: 26.07.10 - 15:20:03 »
Sorry versteh ich nicht, was spricht gegen die DocumentCollection?

Du mußt ja nicht sortieren und kannts Die Dokumente der einen Collection der anderen zufügen.

Aber ich verstehe auch nicht wo hier das dreidimensionale Array ist. bist Du sicher, dass man es so kompliziert machen muß?

Grüße David
P.S.: Ich versuche nur zu verstehen, was Du machen willst, dann kann man Dir sicher besser helfen. Vielleicht gibt es ja generell einen besseren  /einfacheren Weg.
David Schiffer
================================
atBits GmbH & Co. KG - https://atbits.de
im Einsatz: Lotus Domino 8.5, 9, 10

Offline oxyd21

  • Senior Mitglied
  • ****
  • Beiträge: 371
  • Geschlecht: Männlich
Re: Objekt als Listenelement
« Antwort #5 am: 26.07.10 - 15:35:27 »
Also...

2000 Dokumente Typ A

50000 Dokumente Typ B (jeweils 4-8 per ID an ein Typ A gekoppelt)


Typ A enthält einen Schlüssel, nach dem ein neues Dokument erstellt wird. Jeweils ca. 20 Stk.

Diese bekomme ich aus den Dokumenten A, die in der Liste landen. Nun möchte ich über alle Dokumente rattern und mir die Werte die ich brauche (zwei aus A, sechs aus B) auslesen. Diese werden nun nach Schlüssel in das jeweilige Objekt eingetragen und die Werte jeweils aufsummiert. Im Anschluss erstelle ich mir aus den Objekten neue Dokumente.

Offline it898ur

  • Senior Mitglied
  • ****
  • Beiträge: 478
Re: Objekt als Listenelement
« Antwort #6 am: 27.07.10 - 08:56:26 »
Hallo,

bei der Anzahl von Dokumenten muss ich kurz einhaken und warnen - ich hatte zumindest mit einem 7er Server das Problem, dass die Anzahl von Objekten in Listen beschränkt ist und zwar als Summe aller Listen aller Benutzer eines Servers - bei uns war bei ca. 12000 parallel geladenen Objekten Schluß. Die Betonung liegt hier auf "Objekt" - Listen mit Strings oder anderen einfachen Datentypen sind nicht beschränkt.

Wie diees unter 8 aussieht kann ich nicht sagen - aber vielleicht jemand anderes aus dem Forum !

Gruß

André

Offline Pyewacket

  • Senior Mitglied
  • ****
  • Beiträge: 310
  • Geschlecht: Männlich
Re: Objekt als Listenelement
« Antwort #7 am: 27.07.10 - 09:23:10 »
Hi,

ich hatte vor längerer Zeit ein ähnliches Problem.
Ich habe nicht das Dokumentobject in das Listenelement geschrieben sondern nur die UNID
des Dokuments und sonstige noch notwendige Properties.

Für die Verarbeitung dann eine ForAll Schleife über die Liste und die Dokumente welche
tatsächlich verändert werden mussten habe ich gezielt über die UNID geholt.

Gruss Peter
ATOS.org - Feel the music!

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz