Hallo, met onderstaande code kan ik de padnaam opvragen.
Weet iemand hoe ik 3 mappen hoger te pakken krijg ?
via dos misschien? cd.. cd.. cd.. maar hoe vang ik die naam?
(setq teknaam (substr (getvar "dwgprefix") 1 (- (strlen (getvar "dwgprefix")) 0))) ;; zoekt tekening padnaam
dit dus niet :
(setq filenam (substr (getvar "dwgprefix") 1 (- (strlen (getvar "dwgprefix")) 34)))
want de padnamen hebben niet altijd 34 karakters
Bedankt alvast,
Martin
Kan waarschijnlijk eleganter maar dit werkt:
; (ParentDirectory (getvar 'dwgprefix) 1) => "D:\\bKG_tmp"
; Let op:
; (ParentDirectory (getvar 'dwgprefix) 1000) => "D:"
(defun ParentDirectory (path n)
(setq path (vl-string-right-trim "\\/" path))
(repeat n (setq path (vl-filename-directory path)))
path
)
Citaat van: martin op vr 29 04 2016, 23:46:20Weet iemand hoe ik 3 mappen hoger te pakken krijg ?
(setq #path4 (vl-filename-directory (vl-filename-directory (vl-filename-directory (vl-filename-directory (getvar 'dwgprefix))))))
Citaat van: martin op vr 29 04 2016, 23:46:20(setq teknaam (substr (getvar "dwgprefix") 1 (- (strlen (getvar "dwgprefix")) 0))) ;; zoekt tekening padnaam
(getvar "dwgprefix")
doet exact hetzelfde.
Edit:
(vl-load-com)
niet vergeten!
Citaat van: gery op za 30 04 2016, 11:54:18
(getvar "dwgprefix") doet exact hetzelfde.
Niet helemaal. De code van martin verwijdert het laatste karakter (= 'path separator').
Edit:
Oops: Ik zie dat ik niet goed heb gelezen. Gery heeft gelijk. Door (- (strlen (getvar "dwgprefix")) 0) i.p.v. (- (strlen (getvar "dwgprefix")) 1) heeft de code geen effect.
Super bedankt !!! dit kan ik gebruiken.
groet,Martin
nog een vraag :
Met "dwgprefix" kan ik het pad zoeken
Hoe kan ik het AANTAL .dxf files uit deze map halen ?
die heb ik nodig voor mijn loop.
iets met "length" ? dan moet ik eerst een list hebben, toch ? Hoe kan dat?
Alvast bedankt,
groet, Martin
(vl-directory-files path "*.dxf" 1)