Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Ausgabe als txt

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Ausgabe als txt (717 mal gelesen)
Kenny1
Mitglied



Sehen Sie sich das Profil von Kenny1 an!   Senden Sie eine Private Message an Kenny1  Schreiben Sie einen Gästebucheintrag für Kenny1

Beiträge: 77
Registriert: 29.06.2004

erstellt am: 07. Jul. 2005 06:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Leute,

ein kleine Routine soll folgendes ausgeben :

o Alle Kreise die in der Zeichnung enthalten sind, sollen in eine Textdatei geschrieben werden. Das funktioniert soweit, bis auf einen kleinen, großen Schönheitsfehler. Er schreibt mit immer nur den zuletzt gezeichneten Kreis hinein. Ich vermute er überschreibt dies und ich müsste einen Zeilenumbruch einbauen. Gewusst wie...
o Ich würde gerne für jeden Kreis eine fortlaufende Nummer generieren wollen.
o In einen anderem Falle, habe ich das Problem, das ich zweimal ein Gruppencode (10 ....) habe. Beim Filtern greift er immer auf den ersten zu. Hier müsste ich eine Möglichkeit haben ein Zugriff für den 2. Listenteil beginnend mit (10 ...) haben.

Anbei das Programm :

defun c:cliste2 ( /  inListe AusDatei i )


    (setq
      ss (ssget "X" '((-4 . "<OR") (0 . "circle")(-4 . "OR>")))
      ) ;_ end of setq
  (setq i 0)
  (while(setq ent(ssname ss i))
    (setq data(entget ent))
(setq w1 (car (assoc 10 data)))
        (setq w2 (cdr (assoc 40 data)))
        (setq w4 (cdr (assoc 8 data)))
(setq inListe (list w1 w2 w3 w4))
    (w:list->File "D:\\Cliste.txt" inListe)
 
                (setq AusDatei (load "D:\\Cliste.txt"))
            (setq i (1+ i))
))


  (defun w:list->File (datei WerteListe / f)
                (setq f (open datei "w"))
                (princ  f)
                (mapcar '(lambda (W)
                          (princ
                            (if (= 'STR (type W))
                              (strcat "\"" W "\"")
                              W)
                            f
                            )
                          (princ " " f)
                          )
                        WerteListe
                        )
                (princ  f)
                (close f)

(setq i(1+ i))
  )

               


Gruß Kenny1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

CADmium
Moderator
Maschinenbaukonstrukteur




Sehen Sie sich das Profil von CADmium an!   Senden Sie eine Private Message an CADmium  Schreiben Sie einen Gästebucheintrag für CADmium

Beiträge: 13508
Registriert: 30.11.2003

.

erstellt am: 07. Jul. 2005 07:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kenny1 10 Unities + Antwort hilfreich

ne.. so wie du das machst überschreibst du die Datei ständig
nutze statt
(setq f (open datei "w")) ;_ Datei neu erzeugen und öffnen
besser
(setq f (open datei "a")) ;_ Datei öffnen zum Daten anhängen

------------------
- Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 07. Jul. 2005 08:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kenny1 10 Unities + Antwort hilfreich

Hallo Kenny,
und wenn Du die Datei bei jedem Aufstarten überschreiben möchtest, aber mit allen Werten, dann sammle erstmal die Daten in "inListe" und übergib diese Gesamtliste an die Funktion w:list->File

(defun c:cliste2 ( /  inListe AusDatei i )


    (setq
      ss (ssget "X" '((-4 . "<OR") (0 . "circle")(-4 . "OR>")))
      ) ;_ end of setq
  (setq i 0)
  (while(setq ent(ssname ss i))
    (setq data(entget ent))
(setq w1 (car (assoc 10 data)))
        (setq w2 (cdr (assoc 40 data)))
        (setq w4 (cdr (assoc 8 data)))
(setq inListe
      (if inListe
(cons (list w1 w2 w3 w4) inListe)
        (list(list w1 w2 w3 w4))))
   

                ;(setq AusDatei (load "D:\\Cliste.txt"))
            (setq i (1+ i))
)
  (w:list->File "D:\\Cliste.txt" inListe)
  )


  (defun w:list->File (datei WerteListe  /  f)
      (setq f (open datei "w"))
      (mapcar '(lambda(A)
               
                (princ  f)
                (mapcar '(lambda (W)
                          (princ
                            (if (= 'STR (type W))
                              (strcat "\"" W "\"")
                              W)
                            f
                            )
                          (princ " " f)
                          )
                        A
                        )
                (write-line "" f)
)WerteListe)
                (close f)

;(setq i(1+ i))
  )

------------------
viele Grüße

Jörn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Kenny1
Mitglied



Sehen Sie sich das Profil von Kenny1 an!   Senden Sie eine Private Message an Kenny1  Schreiben Sie einen Gästebucheintrag für Kenny1

Beiträge: 77
Registriert: 29.06.2004

erstellt am: 08. Jul. 2005 06:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

mit dem "a" hat es sich schon mal soweit geändert, das neue Infos angehangen werden. Jetzt habe ich vorerst noch zwei Probleme : Diese Datei soll immer wieder neu gefüllt werden und muß entsprechend geleert werden. Momentan behält er alle Sätze und fügt die neuen an.

Wie schaffe ich es, das die Sätze jeweils (w1 - w4) in einer Zeile stehen, dann die nächsten Sätze in der nächsten Zeilen stehen ?

Vielen Dank Gruß Kenny1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

joern bosse
Ehrenmitglied
Dipl.-Ing. Vermessung


Sehen Sie sich das Profil von joern bosse an!   Senden Sie eine Private Message an joern bosse  Schreiben Sie einen Gästebucheintrag für joern bosse

Beiträge: 1734
Registriert: 11.10.2004

Window 10
ACAD 2021
CIVIL 2021
BricsCAD V14-V22
Intel(R) Core(TM)i5-8250U CPU @ 1.60GHz 1.80 GHz
16.0GB RAM
NVIDIA GeForce GTX 1050<P>

erstellt am: 08. Jul. 2005 08:11    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Kenny1 10 Unities + Antwort hilfreich

Hallo Kenny1,
hast Du meine Version mal probiert?? Wenn ich Dich richtig verstanden habe, dann macht die genau das was Du willst.

------------------
viele Grüße

Jörn

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Kenny1
Mitglied



Sehen Sie sich das Profil von Kenny1 an!   Senden Sie eine Private Message an Kenny1  Schreiben Sie einen Gästebucheintrag für Kenny1

Beiträge: 77
Registriert: 29.06.2004

erstellt am: 14. Jul. 2005 06:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Jörn,

konnte nicht eher antworten. Du hast Recht es funktioniert so !!

Danke

Gruß Kenny1

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz