LabVIEWForum.de - String Array Sortieren nach Zahlen...

LabVIEWForum.de

Normale Version: String Array Sortieren nach Zahlen...
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen

ich habe hier an meinem Testsystem 10 COM Ports und da Labview nicht in der Lage ist diese als VISA Ressourcen in einer annehmbaren Zeit zu erkennen (dauert ca 5-10s je nach Tagesform...; hab schon mit dem NI Support darüber gebrütet.. kein Ergebnis. man leitet das Problem weiter in die Entwicklung...). Jedenfalls habe ich die COM Port Erkennung als .NET implementiert... was kein Problem ist und wunderbar in Sekundenbruchteilen funktioniert.

zum Problem selbst ich bekomme bei dem .NET Ergebnis ein Array mit Strings wie ich sie brauche raus .. allerdings unsortiert.. warum auch immer.

also einfach mit "Array sortieren" sortiert kein Problem bis auf COM Ports die >= 10 sind .. die werden unter die 1 sortiert usw.

Ich hätte aber gerne eine Sortierung ala: 1,2,3,4,5,6,7,8,9,10,11,12,13...

ich bin jetzt den Umweg gegangen und habe erst die Zahlen raus gescant und diese dann sortiert mit der selben Funktion .. da geht das so wie ich das will. dann wieder in nen String gewandelt und COM dran geschrieben... funktioniert..

das ganze kommt mir recht umständlich vor ... kennt wer ne elegantere Methode?

hier das VI dazu...

für die die nicht so viele COM Ports haben habe ich ein gefülltes Array dazu gepackt...


T

[attachment=42197]
Von der Beschreibung her würde ich das auch so machen.

Kleine Alternative bei Verwendung von OpenG: Da spukt die "Sort-Array" auch die Indices aus, dann kannst du mit einer zweiten OpenG-Funktion (IndexArray) das Original-Array umsortieren.

VI kann ich mir leider nicht anschauen, lv12_img ist noch nicht auf meinem Entwicklungsrechner gelandet.

Gruß, Jens
Hi


hmm bei openG hab ich noch nicht nachgesehen .. danke für den Hinweis.


hier nochmal als 2010er VI


T
[attachment=42198]
@toaran:
Bitte Profil_ergaenzen. Da steht nur bis lv11_img drin. Dein VI hast Du aber mit lv12_img gemacht.

Gruß Markus
Ja das hab ich auch gemerkt nach der Antwort von Jens.. und sofort ergänzt ...

T2hands
(12.11.2012 15:08 )toaran_ schrieb: [ -> ]...zum Problem selbst ich bekomme bei dem .NET Ergebnis ein Array mit Strings wie ich sie brauche raus .. allerdings unsortiert.. warum auch immer. ...

MSDN liefert die Antwort:
SerialPort.GetPortNames()

Ich weiss, das löst dir das Problem auch nicht eleganter (ich würde es aber wahrscheinlich auch so machen wie du), erklärt aber wie so es unsortiert ist. Des weiteren ist diese Methode heikel.
Zitat:
If the registry contains stale or otherwise incorrect data then the GetPortNames method will return incorrect data.

Eine Alternative habe ich leider auch nicht parat...
Die Funktion "Sortarray" funktioniert auch mit Clustern. Es wird dann nach dem ersten Element sortiert. Damit vereinfacht sich die Sache so:
[attachment=42199]
Hi

Ja das sieht auf jeden Fall schicker aus Wink

T
Referenz-URLs