Zobrazit plnou verzi příspěvku: dialog pro otevření více souborů najednou

alfred
20.03.2009, 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ě...

Seiner
20.03.2009, 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)Seiner2009-03-20 09:34:47

alfred
20.03.2009, 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")

Seiner
20.03.2009, 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 ?)

alfred
20.03.2009, 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?

Seiner
20.03.2009, 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...

alfred
20.03.2009, 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...

pavelstyl
20.03.2009, 12:08
[QUOTE=alfred]Nedá se nějak kousek kódu z VBA spustit z LISPu? [/QUOTE]
 
Toto spustí makro EditRaz z souboru D:\Attrib1.dvb
[CODE](command "_-vbarun" "D:\\Attrib1.dvb!Module1.EditRaz")[/CODE]
 
Pavel Štyl

Seiner
20.03.2009, 12:22
Zaslaný soubor jsem odebral - byl to nepodařený nedodělek a omlouvám se za něj.
VSSeiner2009-03-20 14:37:45

Vladimír Michl
20.03.2009, 13:14
Lepší bude myslím použít knihovnu DOSlib a funkci dos_getfilem.

alfred
20.03.2009, 14:05
Děkuji,přesně to jsem hledal...