Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich ermittel folgendermaßen Werte von Eingabeelementen:
Das rufe ich im Haupt-VI auf und muss immer die Pfadkonstante "Pfad des aktuellen VIs" angeben.
Kann ich irgendwie den Pfad zum Haupt-VI ermitteln, sodass ich diesen fest hinterlegen kann?
Das Ganze sollte auch noch funktionieren, wenn das Programm mit dem Application Builder kompiliert wurde.
Grüße
Anzeige
19.07.2010, 15:40 (Dieser Beitrag wurde zuletzt bearbeitet: 19.07.2010 15:42 von oenk.)
herrlich, wie einfach das mit dem Rüberziehen der PNG in das Blockdiagramm ist.
Danke. Ganz kann ich das nicht nachvollziehen. Du nimmst den Pfad des aktuellen VIs (gerade dieses VI möchte ich ja vermeiden) und prüfst, ob die Dateiendung ".exe" ist.
Wenn ja, gibst du das Verzeichnis der Exe zurück?
Das bekommt ich doch auch über das VI "Applikationsverzeichnis" oder nicht?
' schrieb:Danke. Ganz kann ich das nicht nachvollziehen. Du nimmst den Pfad des aktuellen VIs (gerade dieses VI möchte ich ja vermeiden)
Dann hab ich dich wohl nicht ganz verstanden. Du hast in deinem Snippet ein Pfad-Controll verdrahtet und müsstes den Pfad immer von Hand eingeben.
' schrieb:Das bekommt ich doch auch über das VI "Applikationsverzeichnis" oder nicht?
Ja du hast recht, das könnte man auch über das Applikationsverzeichnis machen. Dieser Code-Snippet stammt noch von LV7.1 und wurde in jede neue Applikation via meinem default LV-Framework kopiert. Kannte dieses VI noch gar nicht. Werde demnach mein Framework überarbeiten....
In theory, there is no difference between theory and practice; In practice, there is.
wieso willst du den ganzen Pfad als Konstante hinterlegen? Birgt das nicht ungeahnte Fehlerquellen, sobald dein User auf die Idee kommt, die Exe nicht im vorgesehenen Verzeichnis zu installieren???
Deshalb mein Vorschlag: OpenVIRef gibt dir auch eine Referenz, wenn du nur den Namen des VIs angibst (als String-Konstante). Standardmäßig schaut LV nämlich nach, welche VIs schon im Speicher sind...
Stimmt, ich möchte nicht den absoluten Pfad, sondern den relativen. In dem Fall würde das dem VI-Namen entsprechen.
In einigen Programmiersprachen sollten relative Pfade unbedingt vermieden werden, nur bei LabVIEW scheinen die sich immer auf das Anwendungsverzeichnis zu beziehen.
Wenn das geht, wäre es eine Möglichkeit. Ich war mir nur nicht sicher, was passiert, wenn ich eine Exe-Datei habe, da es dann ja keine VIs mehr gibt.
Aber die werden vermutlich irgendwie einkompiliert, damit diese Angabe noch passt.
Lässt sich denn der Name des Haupt-VIs ermitteln, auch aus einem SubVI heraus?
Ich würde mir gerne die Konstante "Pfad des Haupt-VIs" ersparen und direkt in einem SubVI unterbringen.
Grüße
20.07.2010, 21:03 (Dieser Beitrag wurde zuletzt bearbeitet: 20.07.2010 21:03 von GerdW.)
"eine Exe-Datei habe, da es dann ja keine VIs mehr gibt."
Falsch, auch in einer Exe hast du weiterhin deine VIs - nur halt ohne Blockdiagramm...
"Lässt sich denn der Name des Haupt-VIs ermitteln, auch aus einem SubVI heraus?"
Dafür gibt es die "Call Chain", zu finden in der Applications Control-Funktionspalette.