Pawcyk Opublikowano 3 Lutego 2018 Zgłoś Opublikowano 3 Lutego 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ł
kruszynski Opublikowano 5 Lutego 2018 Zgłoś Opublikowano 5 Lutego 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 ?
kojacek Opublikowano 5 Lutego 2018 Zgłoś Opublikowano 5 Lutego 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
Pawcyk Opublikowano 5 Lutego 2018 Autor Zgłoś Opublikowano 5 Lutego 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.
Pawcyk Opublikowano 5 Lutego 2018 Autor Zgłoś Opublikowano 5 Lutego 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.
kruszynski Opublikowano 5 Lutego 2018 Zgłoś Opublikowano 5 Lutego 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
Pawcyk Opublikowano 5 Lutego 2018 Autor Zgłoś Opublikowano 5 Lutego 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.
kruszynski Opublikowano 5 Lutego 2018 Zgłoś Opublikowano 5 Lutego 2018 a teraz OK, nie zwróciłem uwagi na to że tutaj (setq PozOdn (cond jest cond .
Rekomendowane 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ę