Autor
|
Thema: Array sortieren (847 mal gelesen)
|
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 11. Aug. 2009 09:45 <-- editieren / zitieren --> Unities abgeben:
Hallo Leutz, eine Frage an die Erfahrenen unter uns. Kann ich im CATIA ein Array sortieren? Ich habe in der V5Automation.chm und im Objekt Browser gesucht und habe nichts gefunden. Nur Excel Befehle bzw. den Material sortieren Befehl. Auch hier im Forum finde ich nur Beiträge um in Excel was zu sortieren. Ich wende mich an euch, in der Hoffnung, dass einer von euch vielleicht eine Methode kennt wie ich trotzdem ein Array sortieren kann. danke, egal was dabei rauskommt ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 11. Aug. 2009 09:51 <-- editieren / zitieren --> Unities abgeben: Nur für MakroNovize
Hallo Christoph, ich kann gerade nicht ausprobieren ob es auch mit dem ATScript funktioniert aber in CATvba funktioniert es mit .sort. Hier mal ein kleines Beipsiel: Code:
Dim myArray(4) as IntegermyArray(0) = 4 myArray(1) = 2 myArray(2) = 1 myArray(3) = 3 myArray(4) = 5 'Sortiert das Array myArray.Sort
------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 11. Aug. 2009 10:10 <-- editieren / zitieren --> Unities abgeben:
Hi Daniel, danke für den Versuch aber das funktioniert bei mir nicht einmal im CATvba. Hab auch versucht es anders zu schreiben, aber er frisst es nich. Hab übrigens noch die Angabe vergessen, dass es ein zweidimensionales Array ist und ich es nach einer gewissen Spalte/Reihe sortieren möchte! ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 11. Aug. 2009 10:36 <-- editieren / zitieren --> Unities abgeben: Nur für MakroNovize
Hallo, sorry das war der Quelltext für eine Collection . Aber hier mal ein Link wie man ein zweidimensionales Array mit VB sortiert Sort Array Hab´s gerade mit VB.NET ausprobiert und es funktioniert gut ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 11. Aug. 2009 11:43 <-- editieren / zitieren --> Unities abgeben:
Riesen Dank Daniel!!!! Das funktioniert für sich. Ich hoffe ich bekomm das nun auf mein Problem angepasst!!!! ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 11. Aug. 2009 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für MakroNovize
Hi, warum die "Sortierroutine" ist doch auch bei dir die selbe oder? Wenn du nicht weiter kommst dann einfach wieder fragen ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 11. Aug. 2009 11:54 <-- editieren / zitieren --> Unities abgeben:
Klar is die Routine die Selbe. Aber erstens muss ich erst mal schauen wie das als CATScript läuft und zweitens muss ich die Syntax meiner Schreibweise anpassen. sonst hab ich in jeder Unterfunktion ne andere Schreibweise. Dann blickt keiner mehr durch Aber danke, wird scho klappen!!!! ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 11. Aug. 2009 16:13 <-- editieren / zitieren --> Unities abgeben:
Hi Daniel, ich hab jetz den ganzen Nachmittag dran rumgeschraubt. Langsam sieht die Struktur eher nach mir aus und ist für mich deswegen übersichtlicher. Allerdings steige ich immer noch nicht ganz dahinter wie die Routine funktioniert. Wenn das Programm so wie du es hier verlinkt hast nach Spalten sortiert, was muss ich dann ändern damit es mir nach einer Reihe sortiert? ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DanielFr. Moderator Manager
Beiträge: 2506 Registriert: 10.08.2005 HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3
|
erstellt am: 11. Aug. 2009 16:17 <-- editieren / zitieren --> Unities abgeben: Nur für MakroNovize
Hallo, ähm wie nach eine Reihe sortieren. Wie willst du eine "Tabelle" nach einer Zeiler sortieren? Ich denke du musst dein Array anders füllen anstatt die Routine umzuschreiben ------------------ MFG Daniel Die KATJA ist halt doch nur ne zickige Französin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 11. Aug. 2009 16:21 <-- editieren / zitieren --> Unities abgeben:
Das hab ich ursprünglich gemacht, aber mein Array passt sich von der Größe immer der Datenmenge an. Da ich immer nur die letzte Dimension redimmen kann muss ich es so reinschreiben wie es ist. Die Routine die du mir gezeigt hast sortiert aber nun leider in der falschen Dimension. Prinzipiel muss ich nun ja nur 2 Parameter vertauschen. Nun, welche sind das? ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MakroNovize Mitglied Konstrukteur, CAD-Admin
Beiträge: 60 Registriert: 20.07.2009 Windows XP SP3 CATIA V5 R18 Xeon 2x 3Ghz 3Gb RAM NVIDIA Quadro FX 3450
|
erstellt am: 12. Aug. 2009 11:19 <-- editieren / zitieren --> Unities abgeben:
Habs nun geschafft. Man muss einfach am anfang wo die oberen und unteren Grenzen des Arrays abgefragt werden die Dimensionen tauschen. **hier die Dimension 2 abfragen** If IsMissing(lngStart) Then lngStart = LBound(vSort, 2) If IsMissing(lngEnd) Then lngEnd = UBound(vSort, 2) **hier die Dimension 1** lb_dim = LBound(vSort, 1) ub_dim = UBound(vSort, 1) Dann jedesmal wenn vom Array etwas abgefragt wird die zwei Koordinaten vertauschen. Dann müsste es funktionieren. also anstatt: vSort(i, index - 1) so: vSort(index - 1, i) ich hab nun das Problem, dass das nur mit Integer funktioniert. Ich hab aber meine Werte als String angelegt. Das bekomm ich aber hin ------------------ Grüße Christoph ************************************************* Die Katia am Morgen, bringt dir reichlich Sorgen! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |