Rekomendowane odpowiedzi

Opublikowano

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ł

 

Opublikowano

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.

Opublikowano

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. 

Opublikowano

Z tymi wieloma plikami to prawda -nie brałem tego pod uwagę. Postaram się zgłębić temat USERRn. Chociaż mam obawy przed grzebaniem się przy zmiennych.
Może rozwiązaniem byłoby tworzenie pliku txt o nazwie takiej jak dwg.

Opublikowano

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.

 

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się