| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Pfad einer Datei ermitteln (2949 mal gelesen)
|
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 22. Mrz. 2005 16:41 <-- editieren / zitieren --> Unities abgeben:
|
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 22. Mrz. 2005 16:51 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
ja - einfach mit (findfile "dateiname.ext") zB (findfile "acad.exe")------------------ Grüsse Thomas EDIT: Nachtrag: Die Datei muss dazu aber in AutoCAD geladen sein [Diese Nachricht wurde von tunnelbauer am 22. Mrz. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 22. Mrz. 2005 18:13 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Hi, (findfile) setzt allerdings voraus, dass sich die Datei in einem der Verzeichnisse befindet, die im AutoCAD-Suchpfad stehen. Ein Dateisucher, der alle Laufwerke und Pfade abklappert wäre IMHO ziemlich lange unterwegs, bis er ein Ergebniss liefert. Was hast Du denn genau vor? Vielleicht kann man etwas einschränken? Gruß CADchup
------------------ www.cadditions.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 22. Mrz. 2005 18:42 <-- editieren / zitieren --> Unities abgeben:
Ja, mit Findfile hatte ich's auch schon probiert und genau die Einschränkung festgestellt. Mir geht's aber eigentlich darum, daß jeder, der von mir eine Lisp-Datei bekommt, diese hinkopieren kann, wo er will und das ganze trotzdem funktioniert. Sonst ist das immer mit ellenlangen Erklärungen verbunden und wer jetzt in Windows und seinen Ordnerstrukturen nicht so bewandert ist, verliert schonmal die ein oder andere Datei. Vielleicht würde es ja auch reichen, den Pfad der geladenen Datei festzustellen - meistens sind die anderen Listen dann auch da zu finden. Gruß, Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADchup Ehrenmitglied V.I.P. h.c.
Beiträge: 3336 Registriert: 14.03.2001 Sicher ist, dass nichts sicher ist. Selbst das nicht. Joachim Ringelnatz
|
erstellt am: 22. Mrz. 2005 22:18 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Ich denke, Du solltest ein anderes Konzept verfolgen. Du könntest zum Beispiel die Lisps im Netz lassen und von dort laden lassen. Oder ein eigenes Menü aufbauen? In der zugehörigen MNL könntest Du dann alle Lisps per (autoload) laden lassen. Gibt noch mehr Möglichkeiten. Wenn Du die Suche bemühst, findest Du bestimmt ein paar Sachen. Gruß CADchup
------------------ www.cadditions.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 23. Mrz. 2005 08:01 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 23. Mrz. 2005 09:48 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Zitat: Original erstellt von CADwiesel: sowas ist leider Grundsätzlich mit Lisp/Vlisp nicht möglich.
Doch ist es, muß man sich bloß ein erweitertes findfile kreieren.. Hilfreich sind dabei u.a: mit rekursiven Aufruf von (vl-directory-files FOLDERNAME "*.*" -1) eine Verzeichnisbaumliste erstellen(der Erste Aufruf erfolgt mit dem entsprechenden LW-Buchstaben) und die dann mit (findfile(strcat FOLDER DATEINAME) abarbeiten. Die Existiereden LW bekommt man mit dem FSO-Objekt : (setq FSO (vlax-create-object "Scripting.FilesystemObject")) (setq DRIVES (vlax-get-property FSO 'Drives)) ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADwiesel Moderator CAD4FM UG
Beiträge: 1989 Registriert: 05.09.2000 AutoCAD, Bricscad Wir machen das Mögliche unmöglich
|
erstellt am: 23. Mrz. 2005 11:18 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 23. Mrz. 2005 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
@CADwiesel .. Nö, ist sicher nicht das wahre... ich halte auch den Ansatz schon verkehrt, die ganze Platte durchsuchen zu müssen ... das dauert nämlich ... die Lispsachen kommen in einen Ordner "LSIP" und der wird in den Supportpfad eingetragen, fertich! Aber wem erzähl ich das? ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 23. Mrz. 2005 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
DAU: "Äh, was ist LSIP das kenn ich nicht den Ordner brauch ich nich *lösch*" Ps.: Wo tut er dann das Lisp hin das nach den gesuchten Lisp sucht *kopfkratz*. ------------------ "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Bitte Supportangaben eintragen, warum siehst du hier [Diese Nachricht wurde von Bernd P am 23. Mrz. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 23. Mrz. 2005 12:55 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Zitat: Original erstellt von Frank88: Mir geht's aber eigentlich darum, daß jeder, der von mir eine Lisp-Datei bekommt, diese hinkopieren kann, wo er will und das ganze trotzdem funktioniert. Sonst ist das immer mit ellenlangen Erklärungen verbunden und wer jetzt in Windows und seinen Ordnerstrukturen nicht so bewandert ist, verliert schonmal die ein oder andere Datei.
Lieber Frank88, so einen Quatsch würde ich nicht mal in Erwägung ziehen. Ein selbstsuchendes Lisp? Dann schreib' lieber eine "ellenlange Erklärung". Wenn man das schlau angeht, ist die gar nicht so lang. Und wer "schonmal die ein oder andere Datei verliert" gehört IMHO nicht an einen Rechner sondern auf den Bau oder in eine Putzkolonne oder sonstwohin, jedenfalls an einen Arbeitsplatz wo er mit Dateistrukturen nix zu tun hat. Wenn Du sicherstellen willst das der User Deine Dateien variabel positionieren kann und Acad das auch mitbekommt, solltest Du darüber nachdenken ob eine Windows-Setup Routine nicht sinnvoll wäre (zu dem Thema hatten wir bereits diverse Threads und Lösungsansätze). IMHO ist das aber für'n paar Lisp-Tools VIIIIEEEELLL aufwändiger als mal eben 'ne Readme zu schreiben. ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 23. Mrz. 2005 15:38 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von marc.scherer: Und wer "schonmal die ein oder andere Datei verliert" gehört IMHO nicht an einen Rechner sondern auf den Bau oder in eine Putzkolonne oder sonstwohin, jedenfalls an einen Arbeitsplatz wo er mit Dateistrukturen nix zu tun hat...
Hallo Marc, super Idee, das mit dem Bau... Und was mache ich, wenn die da schon sind??? Als jemand, der programmiert, kann man sich nur schlecht vorstellen, welche Schwierigkeiten der gewöhnliche User hat, ganz zu schweigen vom DAU. Das Betriebssystem unterstützt solche Ignoranz ja von Version zu Version auch immer mehr. Zu den - euphemistisch interpretiert - ironischen Beiträgen im Forum: War ja nur 'ne Frage! Ich schreibe die Progrämmchen auch nicht hauptberuflich (nicht mal Arbeit im kuschelig warmen Büro - bei der Gelegenheit noch 'nen Gruß an tunnelbauer) und bin, was AutoLISP angeht weiß der Kuckuck keine Leuchte. Ich weiß jetzt, daß es wohl nicht so einfach geht, wie ich gehofft hatte. Dann muß man sich eben was anderes überlegen. Und wenn ich mal viel Zeit habe, wird's vielleicht doch die Suchroutine. Schaden kann's ja nicht. Gruß, Frank
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 Registriert: 07.06.2001 W10-64bit, AMD Ryzen 7 3700X,32GB RAM, Sapphire Pulse Radeon RX 570 8G G5, Canon TX-3000 MFP, Maus Cherry MW4500, Sub:Infrastructure Design Suite, Office 365
|
erstellt am: 23. Mrz. 2005 16:28 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Servus Naja man könnte sich eine *.bat schreiben die die LISP in einen Standardsupportordner schreibt (z.B. gleich in "C:\Programme\AutoCAD 2004"). Aber man kommt halt bei PC-Benutzeranpassungen leider nicht weit ohne wenigstens Grundkenntnisse von der Materie. Ps.: Der DAU schläft nie. ------------------ "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Bitte Supportangaben eintragen, warum siehst du hier Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank88 Mitglied
Beiträge: 156 Registriert: 11.10.2004 AutoCAD 2019/C3D
|
erstellt am: 23. Mrz. 2005 18:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, so ähnlich habe ich's auch schon probiert - mit dem WSH als *.vbs. Soviel weiß dann aber der DAU auch, daß sich dahinter Viren verstecken können. Also wird's gelöscht. Und es löst das eigentliche Problem nicht, daß ich die Dateien meist per eMail verschicke. Wer die Möglichkeit hat, sollte mal bei diversen eMail-Programmen versuchen, Anlagen zu speichern. Das landet alles sonstwo, wenn man den ENTER-ENTER-Doppelschlag im Finger hat. Da ist dann im Zweifel auch die tolle Installationsroutine verschollen. Ein bischen Hoffnung hatte ich noch bezüglich Systemvariablen - da wird ja allesmögliche gespeichert, vielleicht ja auch die letzte geladene LSP. Gibt's aber nicht. Ich werde wohl doch 'ne Standard-eMail anlegen, als schnelle Hilfe. Und dann vielleicht auch irgendwann mal VBA bemühen. Gruß, Frank
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 23. Mrz. 2005 20:13 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Zitat: Original erstellt von Frank88: Und was mache ich, wenn die da schon sind??? Als jemand, der programmiert, kann man sich nur schlecht vorstellen, welche Schwierigkeiten der gewöhnliche User hat, ganz zu schweigen vom DAU.
Hi Frank, wenn die schon da sind, schreibst Du 'ne DAU-Readme in PDF, schön mit bunten Bildern und so... Oder Du nimmst Dir Zeit und regst mal eine interne Schulung in Sachen Dateiablage / Windows Grundkurs an. Ich kann mir sehr gut vorstellen was für Schwierigkeiten der gewöhnliche User hat. Viele meiner Projekte befassen sich mit diesen Usern. Da hilft eben nur, schulen, schulen, schulen. Das hatte ich leider in meinem ersten Post vergessen zu sagen. Also nix gegen DAU's, man muss jedem User eben nur eine vernünftige Einführung geben. Und da reicht in der Regel eben ein gut geschriebenes Readme aus (ruhig mal von anderen querlesen lassen und nach Anregungen verbessern...)
------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Moderator CAD on demand GmbH
Beiträge: 4187 Registriert: 17.05.2001 AutoCAD 20XX, defun-tools (d-tools.eu)
|
erstellt am: 27. Mrz. 2005 09:25 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Hallo Frank, auch wenn ich Marc Recht gebe, dass die User in solchen grundlegenden Dingen fit sein(gemacht werden) müssen, nachfolgend ein paar Lisp-Zeilen, die eine Datei suchen. An diesem Codebeispiel kann man sehr gut das von CADmium vorgeschlagene rekursive Herangehen sehen. Bei Fragen ... Grüße Holger
Code:
;| Aufruf: (FILE:search "startverzeichnis" "dateiname") Bsp: (FILE:search "c:" "test.dwg") |; (defun FILE:search (DIR FILENAME / ergli) (search_File DIR FILENAME) ergli ) (defun search_File_sub (DIR FILENAME / erg) (if (not(Setq FOUND (VL-DIRECTORY-FILES DIR FILENAME))) (mapcar '(lambda (SUBDIR) (if (not (member SUBDIR '(".." "."))) (search_File (strcat DIR "\\" SUBDIR) FILENAME ) ) ) (VL-DIRECTORY-FILES DIR nil -1) ) (setq ergli (cons (strcat DIR "\\" (car FOUND)) ergli)) ) (if ergli ergli erg) )
------------------ Holger Brischke CAD on demand GmbH Autodesk User Group Central Europe Individuelle Lösungen von Heute auf Morgen. AUGCE Manager Deutschland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AB-CAD Mitglied techn. Zeichner/Sachbearbeiter HLS
Beiträge: 8 Registriert: 30.08.2005 8 PC mit ACAD 2000 - 2006 diverse Haustechnik-Komponenten von CATS, Linear, ESS und AB-CAD Eigenbau
|
erstellt am: 30. Aug. 2005 14:01 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Hallo an alle, als "Neuer" im CAD.de-Forum möchte ich mich gerade in dieses Thema einklinken. Es ist durchaus nützlich für den LISP-Anwender, den Pfad einer bekannten Datei zu ermitteln. So wäre es z.B. denkbar, eine Install-Routine in LISP zu schreiben (z.B. install.lsp), die aus Autocad über appload aufgerufen wird. Die install.lsp ist dabei auf diskette oder cd (ist ja auch eine install) und ist damit nicht bestandteil des autocad-Suchpfades. Die install soll diverse weitere dateien auf die festplatte (Abfrage der Autocadumgebung via getenv..) gezielt auf der Festplatte oder dem netzwerk plazieren. Zum Bewegen der Dateien und anlegen diverser verzeichnisse ist doslib (Mcneel) und getfiled (zur Eingabe durch Benutzer) durchaus eine große Hilfe. Nur wie findet man am schnellsten den Pfad, aus dem die install-Lisp gestartet wurde (die Laufwerksbuchstaben differierun nun mal von Rechner zu rechner)? _appload und die Systemvariablen geben leider meines wissens hier keine abfragbare Info, und es wäre echt eine unnötige doppelte Abfrage, den User durch getfiled-Aufruf nochmals den CD- bzw. Diskettenpfad angeben zu lassen, von dem aus weitere Dateien in die Autocad-Umgebung kopiert werden sollen. Die Frage ist also durchaus berechtigt: Wie kann ich den Pfad einer nicht aus der Autocadumgebung geladenen Datei (also kein findfile etc.) ermitteln, ohne nochmals über getfiled eingeben zu lassen?? PS: Der Installshield etc. schien mir für das automatisierte installieren von einigen wenigen Dateien doch eher, wie mit kanonen auf spatzen geschossen (Kosten/Nutzen), zumal die lsp-Variante für mich als ausschließlichen lisp-Programmer den Vorteil bietet, gezielt die Autocad-Umgebung, Version etc. direkt abzufragen und dann entsprechend der Version zwischen den zu installierenden Dateien zu wählen. PS2: Wetten, Holger hat schon eine Idee? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 30. Aug. 2005 14:10 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Zitat: Original erstellt von AB-CAD: Wie kann ich den Pfad einer nicht aus der Autocadumgebung geladenen Datei (also kein findfile etc.) ermitteln, ohne nochmals über getfiled eingeben zu lassen??
.. mit Lisp : geht nicht! Zitat:
PS2: Wetten, Holger hat schon eine Idee?
.. wetten nicht?! ------------------ - Thomas - "Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben." Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 30. Aug. 2005 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
Ich wundere mich zwar, dass so ein alter Thread wieder aufgewärmt wird, aber na gut... Noch mehr wundere ich mich aber über die Idee - die halte ich nämlich für eine ausgesprochen schlechte;-) Das ganze Dateisystem heutiger Rechner beruht doch auf dem Prinzip: Gleiche Dateinamen in verschiedenen Verzeichnissen sind erlaubt. Und jetzt soll dieses Prinzip außer Kraft gesetzt werden, oder was? Wenn einer hier ein Lisp-Progrämmchen namen "MyLittleLisp.lsp" installiert, dann darf keine andere Datei auf dem Rechner mehr so heißen, oder wie? Wer also mal pauschal sein gesamtes AutoCAD-Verzeichnis zwecks Backup in ein anderes Verzeichnis kopiert, ist schon gebräunt. Es ist doch Sinn und Zweck des Acad-Suchpfades, dass nur die Dateien gefunden werden, die darin liegen, und nicht die Dateien von den Backups der letzten Woche usw. Und vielleicht schreibt der Besitzer des Zielrechners auch gerade an einem "MyLittleLisp.lsp", das aber was ganz anderes macht? Und hat davon auch noch 93 Versionen auf seinem Rechner installiert... Mein heisser Tipp in diesem Fall: Das Lisp-Programm mit einer Setup.exe ausliefern. Diese kopiert sich auf den Zielrechner, wirft eine Suche über alle Laufwerke (einschl. Netz- und Wechsel-) und kopiert dann alles dahin, wo eine Setup.exe gefunden wird;-))) Leute, befasst euch mit was Vernünftigem! Gruß, Axel Strube-Zettler ------------------ Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
marc.scherer Ehrenmitglied V.I.P. h.c. CAD-Administrator
Beiträge: 2494 Registriert: 02.11.2001 Windows 10 64bit AutoCAD Architecture 2018/2019 (deu/eng) AEC-Collection 2019 (Revit und Zeugs) Wenn sich's nicht vermeiden läßt: D-A-CH Erweiterung (mies implementierter Schrott)
|
erstellt am: 30. Aug. 2005 15:34 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
<ironie> Aber Axel... Wir versehen doch unsere Dateinamen immer mit 'nem verschlüsselten Code den es auf der der Welt immer nur einmal gibt :dream:. Bei mir heißen die Dateien immer: MylittleLisp.AC76BA86-1033-F400-7760-000000000002.lsp Also bitte Leute... Weitermachen, ich will Ergebnisse sehen! </ironie> ------------------ Ciao, Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mapcar Mitglied CADmin
Beiträge: 1250 Registriert: 20.05.2002 Time flies like an arrow, fruit flies like a banana (Groucho Marx)
|
erstellt am: 31. Aug. 2005 11:32 <-- editieren / zitieren --> Unities abgeben: Nur für Frank88
|