Pawcyk Opublikowano 3 Lutego 2018 Zgłoś Udostępnij 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ł Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 5 Lutego 2018 Zgłoś Udostępnij 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 ? Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kojacek Opublikowano 5 Lutego 2018 Zgłoś Udostępnij 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pawcyk Opublikowano 5 Lutego 2018 Autor Zgłoś Udostępnij 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pawcyk Opublikowano 5 Lutego 2018 Autor Zgłoś Udostępnij 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 5 Lutego 2018 Zgłoś Udostępnij 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 Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pawcyk Opublikowano 5 Lutego 2018 Autor Zgłoś Udostępnij 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. Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kruszynski Opublikowano 5 Lutego 2018 Zgłoś Udostępnij Opublikowano 5 Lutego 2018 a teraz OK, nie zwróciłem uwagi na to że tutaj (setq PozOdn (cond jest cond . Cytuj Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ą.