Type und Array verbinden
Übersicht

![]() |
HubsiBetreff: Type und Array verbinden |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo beisammen.
Ich möchte einer festen Anzahl von Einheiten (das Array) eine unbestimmte Anzahl Informationen (das Type-Konstrukt) mitgeben. Darum habe ich einfach mal auf blöd folgendes versucht: BlitzBasic: [AUSKLAPPEN] ; Pseudo-Beispielcode Der ein oder andere erkennt vielleicht schon worauf ich hinaus will? Ich brauche im Beispiel 5 voneinander unabhängige Typelisten, welche ich aber über den Index einzeln ansprechen kann. Was aber nicht wie gedacht funktioniert: BlitzBasic: [AUSKLAPPEN] ; Pseudo-Beispielcode Erwartungswert wäre gewesen nur die 1 auf dem Bildschirm zu sehen, da in dieser Liste nur ein Eintrag gespeichert werden sollte, eben die 1. Aber gut, so einfach ist es scheinbar nicht ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das geht so leider in BB nicht, da es eine gemeinsame interne Liste für alle Typeinstanzen anlegt.
Du kannst nur deinem Type ein ID-Feld geben und anhand dessen bestimmen welcher Liste ein Type angehört, was allerdings performancetechnisch schwach ist. Die Alternative wäre das einspeichern der Handles der Typeinstanzen in einzelne Banken und dann ein durchiterieren durch diese. each ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
HolzchopfMeisterpacker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn ich dich richtig verstanden habe:
Leider nein. Denn in BB sind Listen und Benutzerdefinierte Types nicht getrennt. Das heisst, dass ausnahmslos alle Objektinstanzen eines Types in derselben Liste landen =/ Wenn du nicht zwingend auf das Verhalten (resp. die Vorteile) von Listen angewiesen bist - also die hohe Dynamik - dann mach' doch statt 5 Listen (was ja so gar nicht direkt geht) einfach 5 Arrays vom Typ T_open_data. Wenn du nicht auf die Listendynamik verzichten kannst und du im Voraus genau weisst, wie viele Listen es immer sein werden, könntest du auch pro Liste einfach einen Type erstellen mit je einem einzigen Feld vom Typ T_open_data um dieses Objekt zu referenzieren. Ist aber unsauber hoch zehn. Eine nicht ganz so optimale Lösung (die aber viel Optimierungspotenzial mit sich bringt - je nach Fall) ist auch, einfach alle Listen zu vereinen und jedem Objekt zu sagen, in welche Liste es gehört (also ein Feld list%). Wenn du dann "Liste 1" durchgehen willst, gehst du einfach die ganze Liste durch, verarbeitest aber nur die Objekte mit list%=1 ![]() mfG Holzchopf |
||
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BY ♫ BinaryBorn - Yogurt ♫ (31.10.2018) Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm |
![]() |
FireballFlame |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja. Schönere Wege gibts da wohl nicht.
Einer der Gründe, warum ich auf BlitzMax umgestiegen bin ![]() |
||
PC: Intel Core i7 @ 4x2.93GHz | 6 GB RAM | Nvidia GeForce GT 440 | Desktop 2x1280x1024px | Windows 7 Professional 64bit
Laptop: Intel Core i7 @ 4x2.00GHz | 8 GB RAM | Nvidia GeForce GT 540M | Desktop 1366x768px | Windows 7 Home Premium 64bit |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nunja, schade ![]() ![]() @Holzchopf: Die einzelnen Listen würden nicht in jedem Durchlauf alle benötigt. Einmal brauche ich Liste 1, ein paar Sekunden später wieder Liste 3 wegen meiner, etc. Aber der Gedanke an sich ist merkenswert. Wer weiß was noch kommt ![]() Vielen Dank an alle für die Hilfe. |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
BIG BUG |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zitat: Ja. Schönere Wege gibts da wohl nicht.
Gibt es doch: Du kannst für jeden Eintrag in Deinem DIM einen Dummy-Type erzeugen und direkt referenzieren. Dann musst Du einen Wert/Feld festlegen, woran Du Deine Dummies erkennst. Wenn Du jetzt zu Deiner Liste einen Eintrag hinzufügen möchtest, verwendest Du einfach INSERT AFTER Dummyeintrag. Möchtest Du die Teilliste durchgehen, kannst Du mit eigener Schleife und AFTER arbeiten. Sobald Du auf den nächsten Dummyeintrag triffst, brichst Du ab, Du hast alle Sätze in der Schleife verarbeitet. Ein Beispiel - Type in Type aber vom Prinzip gleich - habe ich mal hier gepostet(uhh ist das alt, gerade mal 4-stellige Topic ID): https://www.blitzforum.de/foru...php?t=1052 |
||
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final) |
![]() |
Mr.Keks |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hmm? Natürlich gehen Listen mit Blitz! (Nur eben keine generischen...)
BlitzBasic: [AUSKLAPPEN] Type T_open_dataJetzt kannst du durch das Merken des jeweils ersten Elements ne beliebige Anzahl einfach verketteter Listen vom selben Type benutzen. Ne For-Each sieht dann so aus, BlitzBasic: [AUSKLAPPEN] elem.T_open_data = firstElement |
||
MrKeks.net |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group