Przejdź do głównej treści

Zapis tekstów do zewnętrznego pliku

Dzięki temu skryptowi można zapisać dowolne teksty z projektu do zewnętrznego pliku .txt.

 

Zapis tekstu do pliku .txt

 

Polecenie do uruchomienia skryptu LISP: ZapiszTekst

 

Kod źródłowy z opisem

 

;;; Zapis tekstów do zewnętrznego pliku
;;; zwcad.pl
;;; Polecenie do uruchomienia skryptu LISP: ZapiszTekst
;;; Opis: https://www.zwcad.pl/materialy-edukacyjne/kurs-lisp/przyklady-lisp/186-zapis-tekstow-do-zewnetrznego-pliku.html
(vl-load-com)
(setq *ZWCAD* (vlax-get-acad-object))
(setq *Rysunek* (vla-get-activedocument *ZWCAD* ))
(setq *Model* (vla-get-Modelspace *Rysunek* ))
(defun sel2list (selset / Wynik ileelementow i)
;----------------------------------------------------------
; funkcja zamienia zbiór wskazań na listę obiektów
; Argumenty: zbiór wskazań (selectionset)
; Wynik: lista
;----------------------------------------------------------
(setq ileelementow(sslength selset) )
(setq i 0 )
(repeat ileelementow
(setq Wynik (append Wynik (list (vlax-ename->vla-object(ssname selset i) ) )))
(setq i (1+ i ))
)
Wynik
)
(defun WskazTeksty ( / Wybrane Wynik )
;----------------------------------------------------------
; funkcja prosi użytkownika o wskazanie obiektów typu tekst, tekstwielowierszowy.
; Argumenty:
; Wynik:
;----------------------------------------------------------
(setq Wybrane(vl-catch-all-apply 'ssget (list (list(cons -4 "<or") (cons 0 "TEXT") (cons 0 "MTEXT") (cons -4 "or>")) )))
; filtr pozwalający na wybranie jedynie tekstów jedno i wielowierszowych
(if (vl-catch-all-error-p Wybrane)
(progn
(prompt (vl-catch-all-error-message Wybrane))
(setq Wynik nil )
)
(progn
(setq Wynik (sel2list Wybrane )) ; zamiana zbioru wskazań na listę
)
)
Wynik
)
(defun C:ZapiszTekst ( / )
;----------------------------------------------------------
; funkcja Prosi Użytkownika o wskazanie tekstów i zapisuje ich wartości w kolejności alfabetycznej w
; zewnętrznym wskazanym pliku tekstowym
; Argumenty: brak
; Wynik: brak
;----------------------------------------------------------
(setq WybraneElementy (WskazTeksty) )
(setq SciezkaPliku (getfiled "Zapisz jako..." "" "txt" 1)) ; prosi Użytkownika o wskazanie pliku. ostatni
; parametr to tryb okna, określa, czy okno ma prosić o wskazanie pliku do odczytu czy do zapisu
(if (and (>(length WybraneElementy) 0) )
(progn
(setq Tresci (mapcar '(lambda (x) (vlax-get-property x 'TextString ) ) WybraneElementy)); dla każdego
; elementu listy pobiera treść tekstu
(setq Sortowane(vl-sort Tresci '< ) ) ; sortuje alfabetycznie treści tekstów
(ZapiszTekstDoPliku Sortowane SciezkaPliku)
)
)
)
(defun ZapiszTekstDoPliku (dane sciezka / )
;----------------------------------------------------------
; funkcja zapisuje listę danych do pliku tekstowego
; Argumenty: lista tekstów, ścieżka dostępu do lików
; Wynik: funkcja nie zwraca wartości, jedynie zapisuje do pliku
;----------------------------------------------------------
(setq Plik(open sciezka "w") ) ;otwarcie pliku do zapisu
(if Plik(progn
(foreach % dane
(write-line % Plik) ; zapis linii tekstu
)
(close plik) ; zamknięcie wskażnika pliku
))
nil
)

 

Wykonanie w ZWCAD 2023

zapisywanie do pliku txt

 

Wykonanie w ZWCAD 2015

 

LISP ZapiszTekst 2015

 

Wykonanie w ZWCAD Classic

LISP ZapiszTekst Classic

Lista tagów: LISP Przykłady LISP

// ZWCAD: dymki słownika – szerokość 500 px i przeliczenie rozmiaru po wczytaniu obrazka (bez paska przewijania) jQuery(function ($) { if (!$.tooltipster) return; // obrazek w dymku wczytuje się po otwarciu – wtedy dymek trzeba zmierzyć jeszcze raz $.tooltipster.on('ready', function (e) { var instance = e.instance; $(e.tooltip).find('img').each(function () { if (!this.complete) { $(this).one('load', function () { instance.reposition(); }); } }); }); // SEO Glossary ustawia maxWidth: 400 – zmieniamy na 500 po jego inicjalizacji setTimeout(function () { $('.tooltipstered').each(function () { try { $(this).tooltipster('option', 'maxWidth', 500); } catch (err) {} }); }, 0); });