Vytisknout stránku | Zavřít okno

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í: 15.kvě.2026 v 19:21


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... Cry


Odeslal: pavelstyl
Datum odeslání: 20.bře.2009 v 12:08
Původně odeslal(a) alfred 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)
ARKANCE CZ - https://arkance.world - arkance.world
(podpora viz helpdesk.arkance-systems.cz)


Odeslal: alfred
Datum odeslání: 20.bře.2009 v 14:05
Děkuji,
přesně to jsem hledal...

Clap    Clap
Clap



Vytisknout stránku | Zavřít okno