Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Rund um AutoCAD
  aus Liste(13 34 36 67 64 45) string "13 34 36 67 64 45"

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:  aus Liste(13 34 36 67 64 45) string "13 34 36 67 64 45" (245 mal gelesen)
AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 26. Mai. 2003 09:30    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 zusammen,

ich möchte Werte an eine txt.Datei übergeben. Diese Werte habe ich aber leider in Listen abgespeichert.
z. B. :
(setq w(mapcar 'caar alle_KF))
(13 34 36 67 64 45)

Diese ganzen Zahlen sollen nun in die erste Zeile einer txt.Datei geschrieben werden.Dafür müssten aber anstatt der () "" stehen.
So: "13 34 36 67 64 45"

Wie bekomme ich das nur hin?

Liebe Grüße
Andrea

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 26. Mai. 2003 09:42    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 AB 10 Unities + Antwort hilfreich

So könnte das gehen:
lst = Deine Liste
pattern = Das Trennzeichen der Texte
z.B.: (MOUNT-TO-STR '(10 20 30 40 50 60) " ")
Code:

(defun MOUNT-TO-STR (LST PATTERN /)
  (vl-string-right-trim
    PATTERN
    (apply 'strcat
          (mapcar '(lambda (X) (strcat x PATTERN))
                  (mapcar 'itoa LST)
          ) ;_ end of mapcar
    ) ;_ end of apply
  ) ;_ end of vl-string-right-trim
)

------------------
Ciao,
Marc

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

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 26. Mai. 2003 09: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

Hallo Marc,

ich habe aber jetzt noch das Problem, dass ich mit der Variable w weiter arbeiten muss. Der Inhalt der Liste ist meistens zu lang, um alles in den Befehlsaufruf einzuringen. Außerdem soll dies automatisch ablaufen.
Aber (MOUNT-TO-STR w " ") oder ähnlich funtkioniert nicht.

Weißt Du da vielleicht auch noch Rat?

Viele Grüße
Andrea

Oh ich habe mich vertan, dass Problem liegt nicht am weiterleiten der Variable, sondern daran, dass w teilweise Dezimalzahlen enthält. Ansonsten funktioniert es.

[Diese Nachricht wurde von AB am 26. Mai 2003 editiert.]

[Diese Nachricht wurde von AB am 26. Mai 2003 editiert.]

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 26. Mai. 2003 10:08    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 AB 10 Unities + Antwort hilfreich

Code:

(defun MOUNT-TO-STR (LST PATTERN /)
  (vl-string-right-trim
    PATTERN
    (apply 'strcat
          (mapcar '(lambda (X) (strcat x PATTERN))
                  (mapcar 'I-OR-R-TOA LST)
          ) ;_ end of mapcar
    ) ;_ end of apply
  ) ;_ end of vl-string-right-trim
) ;_ end of defun

(defun I-OR-R-TOA (WRT /)
  (if (= (type WRT) 'REAL)
    (rtos WRT)
    (itoa WRT)
  ) ;_ end of if
) ;_ end of defun


------------------
Ciao,
Marc

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 26. Mai. 2003 10:23    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 AB 10 Unities + Antwort hilfreich

Hallo Andrea,

hier noch ein anderer Weg. Ich habe auch gleich das einlesen der Daten aus der Datei eingefügt, damit der Sinn des (princ "'(" f) verstanden werden kann. Auf diese Art und Weise, entfällt das ganze Gemache um eine Textdatei wieder einzulesen, da dass dann mit dem (load- Befehl einfach zu machen ist. Das macht natürlich nur Sinn bei irgendwelchen Config-Dateien, die nicht in anderen programmen weiter verarbeitet werden sollen.
Mit (princ Wert f) entfällt jedoch das Konvertieren zu String's.

Code:

;Datei öffnen
(setq f (open "c:\\test.txt" "w"))
;Zeile als Liste vorbereiten
(princ "'("f)
;Werte eintragen
(mapcar '(lambda (W)
  (princ W f)
  (princ "\t" f)
  )
'(10 10.5 11 12 12.5 13 14 14.5)
)
;Zeile als Liste beenden
(princ ")"f)
;Datei schließen
(close f)
;;;ff um die txt-Datei wieder einzulesen
;Weil als '(10 11...) kann's direkt mit load wieder als Liste geladen werden
(setq w (load "c:\\test.txt"))
;Ausgabe der geladenen Werte - Testausdruck
(princ w)

Bei Fragen ...

Grüße Holger

------------------
Holger Brischke
CADlon - Lisp over night!
Neue Tool's im Free-&Download
Zugang zum Download schon gesichert?

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

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 26. Mai. 2003 10: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

@ Marc:
Vielen Dank für Deine Hilfe, ich hoffe, es ist jetzt das letzte Mal, dass ich nachfragen muss, aber ich bekomme jetzt die Fehlermeldung
"Fehler Fehlerhafter Argumenttyp: fixnump: 10.3".
Ich habe schon mal versucht nach dem Fehler zu suchen, aber komme nicht weiter.

@ Holger:
Vielen Dank auch für Deine Hilfe. Die txt-Datei soll danach in Excel geöffnet werden. Deswegen sollen die Klammern verschwinden.
Wenn ich (princ f) anstatt (princ "'("f)schreibe, dann verschwinden die Klammern ja. Ich muss jetzt nur noch versuchen, die anderen Zeilen auch in diese Datei zuschreiben. Das müsste doch funktionieren, wenn ich anstatt (setq f (open "c:\\test.txt" "w")) (setq f (open "c:\\test.txt" "a")) eingebe.

[Diese Nachricht wurde von AB am 26. Mai 2003 editiert.]

[Diese Nachricht wurde von AB am 26. Mai 2003 editiert.]

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

marc.scherer
Ehrenmitglied V.I.P. h.c.
CAD-Administrator



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

Beiträge: 2490
Registriert: 02.11.2001

Windows 10 64bit
AutoCAD Architecture 2018/2019 (deu/eng)
AEC-Collection 2019 (Revit und Zeugs)
Wenn sich's nicht vermeiden läßt:
D-A-CH Erweiterung (mies implementierter Schrott)

erstellt am: 26. Mai. 2003 10:52    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 AB 10 Unities + Antwort hilfreich

Hi,
""Fehler Fehlerhafter Argumenttyp: fixnump: 10.3"."

Dann muß irgendwas in Deiner Liste weder Real noch Integer sein.
Mit:
(setq xx '(10 20 30 40.0 20 30 60.2))
(MOUNT-TO-STR xx " ")

Geht es auf jeden Fall...
Ergebnis: "10 20 30 40.000 20 30 60.200"

------------------
Ciao,
Marc

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

AB
Mitglied



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

Beiträge: 255
Registriert: 24.05.2002

Mechanical Desktop 6
AutoCAD 2002

erstellt am: 26. Mai. 2003 11:17    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

Vielen vielen Dank Euch beiden. Ihr habe mir echt super weitergeholfen.
Letzendlich habe ich Marc´s Vorschlag verwendet und erhalte alle meine gewünschten Daten, zeilen- und spaltenweise in einer Excel-Tabelle, wenn ich die erstellte txt-Datei öffne.

Vielen Dank,
Andrea

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

Brischke
Ehrenmitglied V.I.P. h.c.
CAD on demand GmbH



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

Beiträge: 4171
Registriert: 17.05.2001

AutoCAD 20XX, defun-tools

erstellt am: 26. Mai. 2003 12:20    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 AB 10 Unities + Antwort hilfreich

Hallo Andrea,

der Vollständigkeit halber,
einen Zeilenumbruch in der txt-Datei erreicht man mit (princ "\n")
und wenn du weitere Daten anfügen möchtest, dann brauchst du die Datei nur nicht zu schließen, bis alle Daten drin sind.
Dann sieht's so aus:

Code:

(setq f (open "c:\\test.txt" "w"))
(mapcar '(lambda (W)
  (princ W f)
  (princ "\t" f)
  )
'(10 10.5 11 12 12.5 13 14 14.5)
)
;;; Hier den Rest eintragen - der noch in die Tab rein soll
;Zeilenumbruch
(princ "\n" f)
(mapcar '(lambda (W)
  (princ W f)
  (princ "\t" f)
  )
'( "Spalte1" "Spalte2" "Spalte3" "Spalte4" "Spalte5" "Spalte6" "Spalte7" "Spalte8")
)
;;;Rest - Ende
;Datei schließen
(close f)

------------------
Holger Brischke
CADlon - Lisp over night!
Neue Tool's im Free-&Download
Zugang zum Download schon gesichert?

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