Zobrazit plnou verzi příspěvku: vytvoření adresáře

Ferdinand
09.07.2008, 09:28
Chci použít jednoduchou pomůcku pro založení podadresáře:
(defun C:ADR1 (/ D1 D2 D3 DWG A1 A2 A3)
  (setq DWG (cadr (fnsplitl (getvar "dwgname"))))     ;"VYKR33" /nazev akt.vykresu bez pripony/  (setq A1 (getvar "dwgprefix")) ;"D:\\akt.adresar\\"  (C:DNES)  (command "_delay" 250)  (setq A2 (strcat A1 "neshoda_" D3 "\\"))     ;"neshoda_2007-12-13\\" /nazev noveho podadresare/  (command "shell" (strcat "mkdir" " " A2))     ;zalozi podadresar>> D:\akt.adresar\neshoda_2008-07-09\  (setq A3 (strcat A2 DWG))  ;"neshoda_2008-07-09\\VYKR33" /retezec-pro ulozeni akt.vykresu/  (princ))
Kde hodnota D3 by se měla vzít z podrutiny DNES - ta poskládá datum z proměnné cdate do řetězce ve tvaru 2008-07-09
Na konci ADR1 ale mi hlásí
Command: ; error: bad argument type: stringp nil
Přitom aplikace DNES je ve výkresu již načtena.
 

alfred
09.07.2008, 17:12
Takhle se da poradit tezko.
Jake jsou hodnoty promennych pred provedenim command? Je skutecne v D3 retezec s datumem?
Co vraci (strcat "mkdir" " " A2)

Zkousel jste to projet po krocich ve VisualLispu?

A nakonec proc nepouzijete (vl-mkdir directoryname) ?
:-)

Ferdinand
10.07.2008, 10:47
Pak jsem na to i vzpomněl (myslím že dokonce rada od Alfréda...): D3 nesmí být lokální proměnná - teda
(defun C:ADR1 (/ D1 D2 DWG A1 A2 A3)
...(strcat "mkdir" " " A2) ;"mkdir D:\\akt.adresar\\neshoda_2008-07-10\\" /retezec pro prikaz shell - mkdir/
Zkusil jsem vl-mkdir ale
Command: (vl-mkdir directoryname); error: bad argument type: stringp nil
 

alfred
10.07.2008, 11:26
[QUOTE=Ferdinand]
Zkusil jsem vl-mkdir ale
<FONT face="Arial, Helvetica, sans-serif" color=#000000>Command: (vl-mkdir directoryname)<FONT face="Arial, Helvetica, sans-serif" color=#000000>; error: bad argument type: stringp nil
[/QUOTE]

Nerozumim... Myslel jsem misto (command "shel" ....) pouzit funkci (vl-mkdir)

takze to pak bude vypadat
(vl-mkdir (strcat "mkdir" " " A2))
nebo tak neco. Vyhoda je, ze neproblikava okno prikazove radky pri provadeni prikazu mkdir.

chlebovsky
10.07.2008, 15:32
(vl-mkdir directoryname) 
nahlásí tu chybu jedině když directoryname bude nilovej
 
takže mrkněte jestli někde máte
 
(setq directoryname "c:\\........."
 
directoryname - zadaná cesta až k tomu tvořenému adresáři...