INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

programmatischer Zugriff auf Such-Pfade



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!

29.05.2007, 11:15
Beitrag #1

s200rs Abwesend
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: Jul 2005

7.1 / 8.5.1
2002
DE

02826
Deutschland
programmatischer Zugriff auf Such-Pfade
Hallo,

weiß jemand, wie ich von einem VI auf die unter Werkzeuge->Optionen->...Suchpfade eingestellten Verzeichnisse zugreifen kann?

Hintergrund:
Ich will ein Sub-VI parallel in mehren Instanzen mittels "Aufruf über Referenz" ausführen. Beim Erzeugen der entsprechenden Referenz mittels "VI-Referenz öffnen" muß ich den VI-Namen angeben. Da die Verzeichnisstruktur auf dem Zielrechner anders ist, als auf meinem Entwicklungs-PC, habe ich nur den Dateinamen des VIs als Konstante angegeben, in der Hoffnung, daß LabVIEW dann von selbst in den auf dem Zielrechner eingestellten Suchpfaden sucht. Das tut es leider nicht. Somit bleibt mir nichts anderes übrig, als das selbst zu programmieren. Ich habe aber kein VI und keine Eigenschaft des aufrufenden VIs gefunden, womit man an die Suchpfade rankommt.

Vielleicht hat ja auch jemand 'ne andere Idee für mein Problem, daß ich vielleicht die Suchpfade gar nicht brauch.

MfG s200rs

________________

LV 7.1; 8.5
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.05.2007, 11:34
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
programmatischer Zugriff auf Such-Pfade
Hallo,

komplett anderer Lösungvorschlag: Kannst du deine Datei- und Verzeichnisstruktur nicht mit relativen Pfaden aufbauen, die beim Kopieren auf einen anderen Rechner dann erhalten bleibt.

Dann musst du nur den "absoluten Pfad" deines Haupt-VI's ermitteln und dann im Verhältnis hierzu alle anderen Pfade relativ dazu aufbauen.

(Aber Achtung: wenn du dann mal eine EXE erstellst, ändern sich meines Wissens nach noch mal die Pfade).

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.05.2007, 11:56
Beitrag #3

s200rs Abwesend
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: Jul 2005

7.1 / 8.5.1
2002
DE

02826
Deutschland
programmatischer Zugriff auf Such-Pfade
' schrieb:Dann musst du nur den "absoluten Pfad" deines Haupt-VI's ermitteln und dann im Verhältnis hierzu alle anderen Pfade relativ dazu aufbauen.

(Aber Achtung: wenn du dann mal eine EXE erstellst, ändern sich meines Wissens nach noch mal die Pfade).

Genau das ist mein Problem. Auf dem Zielrechner darf nur die *.exe laufen. Und wenn ich dann den Pfad des aktuellen VIs ermittle kommt ......exe...vi.
Und an die gleiche Verzeichnisstruktur habe ich auch gedacht, daß scheitert aber daran, daß das Programm auf mehreren Rechnern im Einsatz ist, wo unterschiedliche Strukturen und auch Namen aufgrund verschiedener Sprachen existieren.

Also bisher hab ich das so gelöst, daß ich sämtliche Sub-VIs, die benötigt werden, in eine LLB-Bibliothek gepackt werden und diese dann auf den Zielrechner gespielt wird. Diese wird dann beim Einrichten des Rechners in die Liste der Suchpfade aufgenommen. Somit kann ich unabhängig, wie der Rechner eingerichtet ist, alles benötigte finden. Und das fragliche Sub-VI befindet sich auf den Zielrechnern in der LLB, die sich wiederum i.d.R. im gleichen Verzeichnis befindet, wie die Applikation. Aber eben nur i.d.R. Und diese Bibliothek hat, je nach Sprache, einen anderen Namen.
Deswegen war meine Idee, da der Name ja in den Such-Pfaden eingestellt ist, daß ich ihn von dort her hole.

MfG
Andreas

________________

LV 7.1; 8.5
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.05.2007, 12:25
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
programmatischer Zugriff auf Such-Pfade
Hallo, Andreas,

ich hatte dich etwas anders verstanden. Hatte gedacht, auf deinen Zielrechnern ist auch eine komplette LabVIEW-Entwicklungs-Umgebung installiert. Ehrlich gesagt, VI's einer externen llb aus einer EXE heraus aufrufen, das habe ich bisher auch noch nicht gemacht. So wie du es erzählst, geht es ja. Ich selbst linke die benötigten "Reference"-VI's immer zur EXE dazu.

Jetzt aber zu einem weiteren Tip: Schau mal diesen Link hier an:
http://www.LabVIEWforum.de/index.php?showtopic=5571

In dem zur EXE angelegten ini-File kannst du die Suchpfade eintragen. Vielleicht funktioniert es ja.

Ansonsten, zur Laufzeit kann man diese Suchpfade meines Wissens nach nicht ändern. Das müsstest du dann von Hand machen.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.05.2007, 12:45
Beitrag #5

s200rs Abwesend
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: Jul 2005

7.1 / 8.5.1
2002
DE

02826
Deutschland
programmatischer Zugriff auf Such-Pfade
' schrieb:Ich selbst linke die benötigten "Reference"-VI's immer zur EXE dazu.

In dem zur EXE angelegten ini-File kannst du die Suchpfade eintragen. Vielleicht funktioniert es ja.

Ansonsten, zur Laufzeit kann man diese Suchpfade meines Wissens nach nicht ändern. Das müsstest du dann von Hand machen.

Hallo Jens,

- das mit dem dazulinken ist so 'ne Sache. Wenn ich mal was ändere, müßte ich dann die EXE jedesmal neu erstellen. Unser System ist so gedacht, daß wir, ohne das Hauptprogramm anfassen zu müssen, bestimmte Funktionen, die dynamisch eingebunden werden, ändern oder hinzufügen können. Und die Programme laufen ja bereits. Nun wollte ich eine weitere Funtkion hinzufügen, die selbst ein SubVI über eine Referenz aufruft.

- das mit dem ini-File weiß ich, hat aber zwei Nachteile: 1. ich bin bißl faul und wollte vermeiden, die Textdatei auseinander zu klamüsern, um an die Pfade heranzukammen und 2. kann ich das ganze dann wieder schlecht auf meinem Entwicklungs-PC testen, weil dort die Suchpfade ja nicht in einer Ini-Datei im gleichen Verzeichnis wie das VI selbst abgespeichert werden

- Zur Laufzeit wollte ich die Pfade auch nicht ändern, sondern nur auslesen

Aber wie's aussieht, werde ich wohl nicht dran vorbei kommen, über die Eigenschaft "Aufrufende VIs" das Verzeichnis der Applikation zu ermitteln und dann die ini-Datei auseinanderzunehmen (vielleicht helfen ja die Konfigurations-Datei-VIs, hab ich noch nie ausprobiert Blush) und mir für den Test vielleicht eine dummy-Datei zu schaffen.

Gruß Andreas

________________

LV 7.1; 8.5
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.05.2007, 12:48
Beitrag #6

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
programmatischer Zugriff auf Such-Pfade
' schrieb:Aber wie's aussieht, werde ich wohl nicht dran vorbei kommen, über die Eigenschaft "Aufrufende VIs" das Verzeichnis der Applikation zu ermitteln und dann die ini-Datei auseinanderzunehmen (vielleicht helfen ja die Konfigurations-Datei-VIs, hab ich noch nie ausprobiert Blush) und mir für den Test vielleicht eine dummy-Datei zu schaffen.

INI-Datei-VI gibt es allerdings und sind ganz einfach zu handhaben.

eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.05.2007, 12:56
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
programmatischer Zugriff auf Such-Pfade
' schrieb:Hallo Jens,

- das mit dem dazulinken ist so 'ne Sache. Wenn ich mal was ändere, müßte ich dann die EXE jedesmal neu erstellen. Unser System ist so gedacht, daß wir, ohne das Hauptprogramm anfassen zu müssen, bestimmte Funktionen, die dynamisch eingebunden werden, ändern oder hinzufügen können. Und die Programme laufen ja bereits. Nun wollte ich eine weitere Funtkion hinzufügen, die selbst ein SubVI über eine Referenz aufruft.

- das mit dem ini-File weiß ich, hat aber zwei Nachteile: 1. ich bin bißl faul und wollte vermeiden, die Textdatei auseinander zu klamüsern, um an die Pfade heranzukammen und 2. kann ich das ganze dann wieder schlecht auf meinem Entwicklungs-PC testen, weil dort die Suchpfade ja nicht in einer Ini-Datei im gleichen Verzeichnis wie das VI selbst abgespeichert werden

- Zur Laufzeit wollte ich die Pfade auch nicht ändern, sondern nur auslesen

Aber wie's aussieht, werde ich wohl nicht dran vorbei kommen, über die Eigenschaft "Aufrufende VIs" das Verzeichnis der Applikation zu ermitteln und dann die ini-Datei auseinanderzunehmen (vielleicht helfen ja die Konfigurations-Datei-VIs, hab ich noch nie ausprobiert Blush) und mir für den Test vielleicht eine dummy-Datei zu schaffen.

Gruß Andreas

Hallo, Andreas,

ich glaube, wir haben uns falsch verstanden.

Nochmal langsam:
Jede LabVIEW-Exe legt spätestens beim ersten Aufruf eine ini-Datei gleichen Namens an. Darin stehen eine Reihe von Optionen, im Prinzip können dort großteils dieselben Optionen reingeschrieben werden wie in die LabVIEW.ini. (z.B. auch einfach über einen Editor)
Die Suchpfade für VI's (also das, was man in den Optionen von LabVIEW einstellen kann) sollten in der Option "viSearchPath" stehen (s. hierzu den Verweis oben). Wenn du dies dann auf deinen Zielrechnern entsprechend editierst, sollte (mglw.) deine Suchfunktion mit "VI-Referenz nur über VI-Namen ohne Pfad öffnen" funktionieren. Denn diese Optionen werden beim Start deiner EXE geladen.

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.05.2007, 13:03
Beitrag #8

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
programmatischer Zugriff auf Such-Pfade
Du kannst aber auch aus der Windows Registry die Pfade für Eigene Dateien, Anwendungsdaten u.s.w. -Verzeichnisse auslesen und die Aufrufe relativieren. Oder wird es vielleicht mit dem "Current VIs Path" auch klappen. Ansonsten würde ich vorschlagen die VIs an einen bestimmten Platz zu legen.

eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.05.2007, 13:29
Beitrag #9

s200rs Abwesend
LVF-Gelegenheitsschreiber
**


Beiträge: 75
Registriert seit: Jul 2005

7.1 / 8.5.1
2002
DE

02826
Deutschland
programmatischer Zugriff auf Such-Pfade
Hallo Jens, hallo eg,

wo und wie die Suchpfade abgelegt werden ist mir schon klar, hab auch schon bei der Inbetriebnahme von so 'nem PC mit dieser Ini-Datei rumgespielt.

Nur das Problem für mich besteht jetzt, daß ich den Namen des Hauptprogramms, das die Ini-Datei "besitzt" jetzt über Eigenschaften "Aufrufende VIs" rückwärts erst ermitteln muß. Und auf meinem Enwtwicklungs-PC gibt es diese Ini in dem Verzeichnis, wo mein "Problem-VI" steckt keine ini, sondern hier greift ja nur die LabVIEW.ini aus c:...LabVIEW7.1. Das ist halt alles bißl umständlich.
Die Funktion ist ja allein nicht lauffähig und wird auf dem Zielrechner auch nicht als exe vorliegen, sondern wird von einem übergeordneten Programm zur Laufzeit erst aufgerufen, welches als exe gestartet wird.

' schrieb:Wenn du dies dann auf deinen Zielrechnern entsprechend editierst, sollte (mglw.) deine Suchfunktion mit "VI-Referenz nur über VI-Namen ohne Pfad öffnen" funktionieren. Denn diese Optionen werden beim Start deiner EXE geladen.

Die LLB, wo sich mein Sub-VI drin befindet, daß ich in mehreren Instanzen zeitgleich ausführen will, habe ich auf dem Zielrechner bereits bei der Inbetriebnahme zu den Suchpfaden hinzugefügt, sonst würde dort nix gehn. Doch leider verlangt die Funktion "VI-Referenz öffnen" den kompletten VI-Namen samt Verzeichnis und gibt sich nicht mit dem blanken VI-Namen zufrieden und sucht eben nicht selbsttätig in den Suchpfaden.

Deswegen wollte ich selbst danach suchen und hatte gehofft, aus dem laufenden VI auf die Suchpfade direkt (durch ein fertiges VI oder eine Eigenschaft der Applikation) zugreifen zu können, also ohne erst in die Ini-Datei zu gehen. Aber es scheint nur so zu gehen

MfG Andreas

________________

LV 7.1; 8.5
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.05.2007, 13:51
Beitrag #10

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
programmatischer Zugriff auf Such-Pfade
Hallo, Andreas,

sorry, dass es nicht so funktioniert, wie ich mir das gedacht habe. Ich war jetzt auch nicht sicher, ob das so geht oder nicht.

Dann anderer Vorschlag: In einer externen Text- oder Ini-Datei schreibst du die Suchpfade zu deinen LLBs (je nach Zielrechner halt, dann bist du immer noch ziemlich variabel). Diese kannst du in deinem Haupt-VI auslesen. Dann bastelst du dir die entsprechenden Pfade zusammen und überprüfst z.B. per open-file, ob das entsprechende VI bzw. LLB existiert?

Dann per open-reference mit korrektem Pfad das VI öffnen.

(in der Hoffnung, dass ich jetzt langsam bei deinem Aufruf-Baum durchsteige Smile).

MfG, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Pfade von Absolut nach Relativ HellMell 1 3.069 21.03.2017 14:04
Letzter Beitrag: jg
  programmatischer Zugriff auf Umgebungsvariablen via Pfad achim @ FZK 4 5.774 04.10.2011 13:10
Letzter Beitrag: achim @ FZK
  Programmatischer Softwareupdate unicorn 8 7.296 12.03.2010 13:00
Letzter Beitrag: rolfk
  Pfade dynamisch aus Textdateiliste erstellen tt-web 11 9.290 30.10.2009 18:50
Letzter Beitrag: Y-P
  Absolute Pfade zur Library fidel 3 4.074 23.11.2006 07:54
Letzter Beitrag: fidel

Gehe zu: