Zapamiętywanie ostatniej wprowadzonej wartości


Rekomendowane odpowiedzi

Dzień dobry.

Wymyśliłem rozwiązanie tytułowego problemu przy użyciu funkcji write-line i tworzeniu pliku txt.

(defun c:test () 
;odczyt rzednej z pliku
(setq f (findfile (strcat (getvar 'dwgprefix) "OstWprRzedna.txt")))
(if (not f)
	(setq something 190)
    (progn (open (strcat (getvar 'dwgprefix) "OstWprRzedna.txt") "r")
	(setq something (atof(read-line f)))
	(close f)
	)
)
; koniec odczytu rzednej z pliku
(setq PozOdn (cond 
    ((getreal (strcat "\nPodaj poziom odniesienia <"(rtos something 2 2)"> \n")))
	(something)
	);koniec cond
); koniec steq
; zapis wprowadzonej rzendej do pliku txt
(setq file (open (strcat (getvar 'dwgprefix) "OstWprRzedna.txt") "w"))
(write-line (rtos PozOdn) file)
(close file)
;koniec zapisu wprowadzonej rzednej do pliku
);end

Oczywiście coś mi nie działa i proszę o pomoc.
PS  żeby sprawdzić czy działa trzeba uruchomić dwa razy.

Paweł

 

Odnośnik do komentarza
Udostępnij na innych stronach

W mojej subiektywnej opinii, pomysł nieco chybiony. Co będzie gdy w tym samym katalogu będzie więcej plików rysunkowych? Wszystkie będą się odwoływać do tego samego pliku tekstowego? A co jeśli przypadkowo plik zostanie usunięty? Nie wiemy czemu ma to służyć, niemniej widzę chyba lepsze rozwiązania: zapamiętanie danych w rysunku np. Zmienna USERRn (ulotne - niezapamiętywane w sesji), lub jako dane niegraficzne - słownik w namedobjdict, a w nim XRecord (zapamiętane na stałe). Ponadto XData przypięta do jakiegoś obiektu, itp.

Odnośnik do komentarza
Udostępnij na innych stronach

Etapy programu:
1) Najpierw program sprawdza czy istnieje plik OstWprRzedna.txt. Jeżeli nie, to ustawia domyślną wartość 190, jeżeli tak, to pobiera wartość z pliku.
2) Program prosi o podanie wartości (w nawiasie podając wartość domyślną/ostatnią wprowadzoną).
3) Jeżeli wprowadziłem wartość ręcznie, to zapisuje ją do pliku OstWprRzedna.txt
Na obecnym etapie program tworzy plik OstWprRzedna.txt z wprowadzoną wartością, ale przy ponownym uruchomieniu wyświetla błąd:

; błąd: zły typ argumentu: FILE "D:\.......\OstWprRzedna.txt"

Podejrzewam, że błąd jest w formule odczytu z pliku, który już istnieje.

PS program tworzy plik txt o ścieżce takiej jak plik dwg, więc plik dwg musi być zapisany. 

Odnośnik do komentarza
Udostępnij na innych stronach

No i wszystko się wyjaśniło. A co do (something) to chodzi o taki efekt:

podaj poziom odniesienia:        <domyślna wartość>  ; jak nic nie wpiszę i kliknę enter to wstawia wartość domyślną

Słowo "something" to moja własna inwencja - nic lepszego mi nie przyszło do głowy ;)
Może właściwsze powinno być war1. Tak czy siak dziękuję za wszystkie odpowiedzi.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie