dialog pro otevření více souborů najednou
Vytištěno z: CAD Fórum
Kategorie: Autodesk - stavebnictví, strojírenství, CAD/GIS
Název fóra: CAD programování
Popis fóra: Otázky programování - nadstavby a utility pro CAD a GIS aplikace Autodesk (VBA, AutoLISP, ARX/C++, .Net, JavaScript, Python, MEL...)
URL: https://www.cadforum.cz/forum/forum_posts.asp?TID=8312
Datum vytištění: 11.zář.2026 v 04:39
Téma: dialog pro otevření více souborů najednou
Odeslal: alfred
Předmět: dialog pro otevření více souborů najednou
Datum odeslání: 20.bře.2009 v 08:49
Dobrý den, potřeboval bych otevřít v lispu více souborů najednou. Ze souborů něco čtu, nejedná se ale o DWG, jde o textové soubory. Pokud chci otevřít pouze jeden soubor, použiji funkci
(getfiled)
v tomto dialogu jde vybrat pouze jeden soubor. Já bych ale potřeboval vybrat z jednoho adresáře více souborů. Něco jako je u funkce [CMD]OTEVŘI[/CMD] (_OPEN) - zde lze vybrat více souborů najednou.
Procházím nápovědu, zkouším hledat na netu, ale marně...
|
Odpovědi:
Odeslal: Seiner
Datum odeslání: 20.bře.2009 v 09:34
|
IMHO v lispu je příkaz Open a můžete si otevřít, kolik souborů chcete
(setq i (open "soubor.txt" "r"))
(setq x (read-line i))
(close i)
------------- Vítězslav Seiner
Chrudim
|
Odeslal: alfred
Datum odeslání: 20.bře.2009 v 09:47
Vidím, že jsem nezformuloval dotaz dobře. Nejde mi o funkci (open)
Ale o otevírací dialog, kde je možné vybrat více souborů najednou. Něco jako je (getfiled) ale s možností výběru více souborů. Podobný dialog je v cadovské funkci na otevření souboru DWG (se SHIFTEM vyberu na otevření více souborů), ale mě nejde o DWG a potřebuji to v lispu...
getfield vrátí jeden string s plným jménem souboru (včetně cesty - např: "c:\adresář\soubor.txt"). U funkce kterou hledám bych si představoval, že vrátí list, který bude obsahovat stringy s názvy vybraných souborů. Např. ("c:\adresář\soubor-1.txt" "c:\adresář\soubor-2.txt" ... "c:\adresář\soubor-XX.txt")
|
Odeslal: Seiner
Datum odeslání: 20.bře.2009 v 10:15
|
Aha - omlouvám se za nechápavost.
Pak se ale obávám, že GETFILED multiselect neumí (aspoň jsem nenašel) a budete to muset někudy obejít (VB + common dialog ?)
------------- Vítězslav Seiner
Chrudim
|
Odeslal: alfred
Datum odeslání: 20.bře.2009 v 10:27
Bohužel VisualBasic vůbec, ale vůbec neovládám...
Nedá se nějak kousek kódu z VBA spustit z LISPu?
|
Odeslal: Seiner
Datum odeslání: 20.bře.2009 v 10:49
VBA v AutoCADu jsem nějak minul. Kvůli použitelnosti v LT spíš tvořím externí prográmky ve VB. Asi by nebyl problém napsat jednoduché exe, které by otevřelo pomocí API CommonDialog a do dočasného textového souboru zapsalo vybrané soubory. To by se spouštělo z lispu pomocí STARTAPP. Ale přijde mi to takové překombinované. Třeba někoho napadne něco jednoduššího...
------------- Vítězslav Seiner
Chrudim
|
Odeslal: alfred
Datum odeslání: 20.bře.2009 v 11:14
V nejhorším to vyřeším na stejném principu, ale víc manuálně. Ručně si vytvořím seznam souborů - do textového souboru a v AutoCadu si ho pak snadno načtu.
Vypadá to, že skutečnost multivýběru v dialogu pro otevření souboru DWG mi dala marnou naději, že to bude umět i Visual Lisp... 
|
Odeslal: pavelstyl
Datum odeslání: 20.bře.2009 v 12:08
alfred napsal(a):
Nedá se nějak kousek kódu z VBA spustit z LISPu?
|
Toto spustí makro EditRaz z souboru D:\Attrib1.dvb
(command "_-vbarun" "D:\\Attrib1.dvb!Module1.EditRaz") |
Pavel Štyl
|
Odeslal: Seiner
Datum odeslání: 20.bře.2009 v 12:22
|
Zaslaný soubor jsem odebral - byl to nepodařený nedodělek a omlouvám se za něj.
VS
------------- Vítězslav Seiner
Chrudim
|
Odeslal: Vladimír Michl
Datum odeslání: 20.bře.2009 v 13:14
Lepší bude myslím použít knihovnu http://en.wiki.mcneel.com/default.aspx/McNeel/DOSlib.html" rel="nofollow - DOSlib a funkci dos_getfilem.
------------- Vladimír Michl (moderátor) https://www.linkedin.com/in/vmichl/ - LinkedIn , Autodesk Expert Elite
|
Odeslal: alfred
Datum odeslání: 20.bře.2009 v 14:05
Děkuji, přesně to jsem hledal...

|
|