Zobrazit plnou verzi příspěvku: Konverzia asociačneho zoznamu do súboru

michaelflyer
08.11.2016, 14:36
Zdravím. Potreboval by som nasmerovať správnym smerom, ktorým sa mám uberať pre jednoduchosť a prehľadnosť zoznamu. Program, ktorý robím má v sebe množstvo dát. Sú zapísané v premennej (nazvem ju all_assoc_list). Potreboval by som ich uložiť na opätovné načítanie - aby sa mi nestratili pri zavretí autocad-u. Aall_assoc_list sa skladná z rôznych zoznamov a podzoznamov:(("AA" ( 1 . 180.0)...( 8 . 150.0))...("AN" ( 1 . 10.0 10.10 0.0 )...( 4 . 10.0 10.10 0.0))...("NS" ("H" (1 . 40))( "UV" (1 . 40))))"AA" a ž "AN" sú zoznamy, ktoré mi hovoria o bodoch, názve entýt, šírky, alebo hrúbky materiálov. "NS" sú nastavenia rôznych komponentov. Toto by som potreboval nejako uložiť do textového súboru. Problém je však s úvodzovkami ("). Síce (chr 34) funguje ale pridá tam aj lomítko (/). Vedeli by ste mi poradiť akým spôsobom by som mal ukladať dáta? či už do nejakého súboru, alebo priamo do dwg súboru? Alebo existuje niečo úplne iné ako ukladať napríklad asociačný zoznam? Alebo to ukladať inak a nie ako asociačný zoznam?Chcel by som sa však vyhnúť veľkému množstvu malým súborov. Aj tak by mi to neriešilo text s úvodzovkami.

Vladimír Michl
08.11.2016, 14:53

Uvozovky stačí zformátovat správným tiskovým příkazem. Ukládání je možné dovnitř DWG (asi do dictionary) nebo do externího souboru - záleží co je to za data a zda patří ke konkrétnímu DWG. Pro zápis do externího souboru by měl stačit standardní (prin1):[CODE](prin1 mujseznam mujLSPsoubor)[/CODE]možná v podobě:[CODE](setq f (open "c:\\data\\mojedata.lsp" "w"))(princ "'" f)(prin1 mujseznam f)(close f)[/CODE]a pro zpětné načtení pak obyčejný (load):[CODE](setq mujseznam (load "c:\\data\\mojedata.lsp"))[/CODE] 

michaelflyer
09.11.2016, 12:51
Ďakujem. Veľmi dobrý nápad dať to do .lsp súboru. Perfektne...