Pawcyk Posted February 3, 2018 Report Share Posted February 3, 2018 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ł Quote Link to comment Share on other sites More sharing options...
kruszynski Posted February 5, 2018 Report Share Posted February 5, 2018 Dnia 3.02.2018 o 17:58, Pawcyk napisał: coś mi nie działa Może Pan nieco rozwinąć ? Jaki jest rezultat, a jakiego Pan się spodziewa ? Quote Link to comment Share on other sites More sharing options...
kojacek Posted February 5, 2018 Report Share Posted February 5, 2018 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. Pawcyk 1 Quote Link to comment Share on other sites More sharing options...
Pawcyk Posted February 5, 2018 Author Report Share Posted February 5, 2018 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. Quote Link to comment Share on other sites More sharing options...
Pawcyk Posted February 5, 2018 Author Report Share Posted February 5, 2018 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. Quote Link to comment Share on other sites More sharing options...
kruszynski Posted February 5, 2018 Report Share Posted February 5, 2018 (close f) powinno zamykać po uchwycie do pliku a nie po ścieżce. Czyli (setq file (open (strcat (getvar 'dwgprefix) "OstWprRzedna.txt") "r") ) ... (close file) A o co chodzi z tym? (something) Pawcyk 1 Quote Link to comment Share on other sites More sharing options...
Pawcyk Posted February 5, 2018 Author Report Share Posted February 5, 2018 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. Quote Link to comment Share on other sites More sharing options...
kruszynski Posted February 5, 2018 Report Share Posted February 5, 2018 a teraz OK, nie zwróciłem uwagi na to że tutaj (setq PozOdn (cond jest cond . Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.