| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für PTC CREO | | |  | Altair ernennt MAIT zum Channel Partner für DACH, Benelux und Liechtenstein, eine Pressemitteilung
|
Autor
|
Thema: save_package (1221 mal gelesen)
|
RobCraven Mitglied Konstrukteur
 
 Beiträge: 111 Registriert: 30.01.2009 Win10 64bit Inventor 2022 AutoCad mechanical 2022 Vault pro 2022
|
erstellt am: 14. Jun. 2010 16:20 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich bin dabei mir das lisp von Walter aus diesem Tread so umzustricken, dass es einzelne .pkg files speichert... kann ja nich so schwehr sein dacht ich... nach dem ich ewig nach dem entsprechenden Code zum pkg-speichern gesucht habe, komme ich nun da nicht weiter, diesen richtig einzusetzen. Ich hab das jetzt so Code: (setf datei (format nil "~a//~a.pkg" verz (sd-inq-obj-basename teil)))
und soCode: (sd-call-cmds (save_package :select teil :filename datei :overwrite))
mein einzigster Anhaltspunkt ist Zitat: All filenames must be enclosed by double quotes (" ").
aber das ist er doch oder? Des Weiteren gebe ich zu, dass ich überhaupt keine Ahnung habe, was Code: "~a//~a.pkg"
bedeutet, oder wie es funktioniert. Aber ich weiß, dass es irgendwie den Pfad beschreibt, aber wie???vielleicht kann mir ja mal einer auf die Sprünge helfen... mfg KJ.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
der_Wolfgang Moderator Tastenhauer
     
 Beiträge: 2296 Registriert: 3.20. ● PE60+80@home ● W10 Pro Build10.0.19045.5737 ● Drafting V17~V20.7@job ● Modeling V17~V20.7@job ● Windchill 12.1.2.6@job ● UWGM Client 13.0.0.1@job ● Taschenrechner ● Stift+Zettel V8.42
|
erstellt am: 14. Jun. 2010 21:10 <-- editieren / zitieren --> Unities abgeben:          Nur für RobCraven
Zitat: keine Ahnung habe, was Code: "~a//~a.pkg"
bedeutet, oder wie es funktioniert.vielleicht kann mir ja mal einer auf die Sprünge helfen...
Peitsche-Schwing Ala HOPP!! :D a) mach dich mal über die format funktion schlau. Auf http://osd.cad.de und bei http://www.clausbrod.de gibt es ausreichend Hinweise fuer Referenzen und co. b) kurz: format baut mit Hilfe einer Formatierungs Anweisung und X Argumenten einen String zusammen in deinem konkreten fall
Code: (format nil "~a/~a.pkg" verz (sd-inq-obj-basename teil)))
* formatierungsanweisung: "~a/~a.pkg" * 1. Argument verz * 2. Argument teil-basenamedas 1. Argument wandert in das erste konstrukt was mit ~ anfängt, das 2. ins 2. usw. Heraus kommt beispielsweise: --> c:/temp/cube42.pkg nun koennte es aber sein das dein Verzeichnisname ein Blank enthält (das ist *immer* hässlich).. und mit --> c:/Documente and Settings/Temporary files/cube42.pkg würde das Dateisystem die Grätsche machen.. ok, nicht ganz. Als Dateiname bräuchtest Du --> "c:/Documente and Settings/Temporary files/cube42.pkg" und das als LISP string im code (!) wuerde so aussehen --> "\"c:/Documente and Settings/Temporary files/cube42.pkg\"" Beachte: die beiden \" sind BESTANDTEIL des strings.. da aber strings mit " umschlossen werden braucht es eine besondere Schreibweise: deswegen der \ davor. (Man spricht vom 'escapen eines char' : man hebt die Sonderbedeutung des Zeichen (hier anfang/ende eines Strings) auf und damit kann das Zeichen bestandteil des String werden. Ufff... ;) somit landen wir bei:
Code: (format nil "\"~a/~a.pkg\"" verz (sd-inq-obj-basename teil)))
Bist Du bis zum Ende mit gesprungen? Du hast da übrigens zwei Slashes zwischen verz und teilename gehabt. Das bring nix. GGF mal noch der Integration kit funktion sd-convert-filename-to-platform gucken. Die kuemmert sich um / \ . Aber die meisten OSD file operation funktionieren mit / ganz gut. Wolfgang (mal wieder mit EDV-technischen-Smilie-Problem :-/ ------------------ Korrekt gelesen ist 'verz' natuerlich das 3. Argument fuer format.. aber ich habs mal etwas vereinfacht. ------------------ ● Seamonkey Firefox Thunderbird ● OSD Hilfeseite (de) / help page (en) ● NotePad++ ● [Diese Nachricht wurde von der_Wolfgang am 14. Jun. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RobCraven Mitglied Konstrukteur
 
 Beiträge: 111 Registriert: 30.01.2009
|
erstellt am: 15. Jun. 2010 09:27 <-- editieren / zitieren --> Unities abgeben:         
Hallo Wolfgang, Dank dir, dass du mir das mit dem "~a/~a.pkg" näher gebracht hast, so schwer ist das eigentlich nicht zu verstehen, wenn man's einmal hat... Der eigentliche Fehler lag aber scheinbar darin, dass "save_package" den Parameter ":select" nicht kennt und daher damit nichts anfangen konnte, diesen entfernt und schon klappt es, sieht dann so aus Code: (sd-call-cmds (save_package teil :filename datei :overwrite))
Zitat: Du hast da übrigens zwei Slashes zwischen verz und teilename gehabt. Das bring nix. GGF mal noch der Integration kit funktion sd-convert-filename-to-platform gucken. Die kuemmert sich um / \ . Aber die meisten OSD file operation funktionieren mit / ganz gut.
ich hatte das aus Walters lisp kopiert, leider ist es oft noch so, dass ich nicht alles innerhalb der lisp verstehe und daher denke "das muss schon so, sonst hätten sie's ja anders gemacht"mfg KJ. [Diese Nachricht wurde von RobCraven am 15. Jun. 2010 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |