Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 17.01.2010, 21:13 Titel: UDT Deklaration auswerten? |
|
|
Hoffentlich nerve ich das Forum nicht allzu sehr mit meinen Anfängerfragen. Also, folgendes Problem:
Code: | TYPE udt_type
var1 AS INTEGER
var2 AS STRING * 10
END TYPE
DIM udt1 AS udt_type |
In einer Sub wird diese UDT als Parameter übergeben. Wie kann ich innerhalb der Sub den Namen und Datentyp (ob String oder Nicht-String) der einzelnen Felder feststellen, sowie die Anzahl der Felder der UDT?
Die Sub müsste also in der Deklaration der übergebenen UDT nachschauen und folgendes feststellen:
Anzahl der Felder von udt1: 2
Name und Datentyp von Feld 1: var1.udt1, INTEGER
Name und Datentyp von Feld 2: var2.udt1, STRING * 10
Wie geht das? Ich habe nicht den Schimmer einer Ahnung!
Ich brauch dies, um innerhalb einer Sub eine übergebenes (x-beliebiges) UDT-Array nach einer bestimmten Feld-Nr der UDT zu sortieren. Bildhaft gesprochen, ich will eine Tabelle die aus mehreren Spalten besteht, jeweils nach unterschiedlichen Spalten sortieren. Dies ist mit Sicherheit schon häufig programmiert worden. Vielleicht gibt es Programm-Beispiele? |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 17.01.2010, 21:24 Titel: |
|
|
Wird so nicht möglich sein.
Mit SizeOf kann man die Größe eines UDTs ermitteln oder mit OffsetOf den Abstand der einzelnen Typen, aber die Anzahl daraus zu ermitteln wäre viel zu unsicher, besonders mit so Konstrukten wie String * irgendwas.
Den Datentyp kann man sich auch nicht so einfach ausgeben lassen. Man kann mit Val() prüfen, ob es eine Zahl ist oder nicht, klappt aber auch nicht immer da Strings mit einer vorangestellten Zahl trotzdem mit Val() funktionieren.
Wenn du Tabellen willst, solltest du zweidimensionale Arrays verwenden und die Sortieralgorithmen selbst erstellen. |
|
Nach oben |
|
 |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 17.01.2010, 21:53 Titel: |
|
|
MOD hat Folgendes geschrieben: | Wenn du Tabellen willst, solltest du zweidimensionale Arrays verwenden .... |
Wie kann ich in einem zweidimensionalen Array unterschiedliche Datentypen unterbringen? Ich dachte das geht nur in einem UDT-Array? |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 17.01.2010, 22:09 Titel: |
|
|
Mach ein String-Array, da kannst du auch Zahlen reinnehmen und bei Bedarf einfach in den gewünschten Datentyp casten.
Wenn du unbedingt verschiedene Datentypen willst, dann nimm verkettete Listen. Da gabs erst kürzlich ein Paar Diskussionen zu dem Thema, bei denen die Listen auch in Code umgesetzt wurden. Von Stueber und St_W aktuell und eine etwas ältere Version aber deswegen nicht schlechter gibt es von ThePuppetMaster. Sollte es alles im "Projekt"-Forum geben. |
|
Nach oben |
|
 |
SL
Anmeldungsdatum: 06.12.2009 Beiträge: 43
|
Verfasst am: 17.01.2010, 23:09 Titel: |
|
|
Das mit dem zweidimensionalen String-Array wäre eine Möglichkeit.
Was ich jetzt noch bräuchte, ist ein Programmbeispiel zum Sortieren eines zweidimensionalen Arrays. (Da käme meiner Faulheit sehr entgegen)
Die Name der entsprechenden Sub könnte vielleicht so lauten: Sub_Tabellen_Sortierung (Tabelle (), Nr_der_zu_sortierenden_Spalte ) |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.01.2010, 23:39 Titel: |
|
|
forensuche: sortieren...
und das ganze dann eben auf zwei dimensionen erweitern. z.B. mit lexikographischer ordnung. wir wissen ja nicht, was deine sortierkriterien sind. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
|