Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Geziehlt Ini Datei auslesen

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
  
PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
Autor Thema:  Geziehlt Ini Datei auslesen (185 / mal gelesen)
Christoph027
Mitglied


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

Beiträge: 2
Registriert: 04.11.2024

IBS-CAD 2024

erstellt am: 04. Nov. 2024 11: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

Grüßt euch alle miteinander,

Ich bin gerade dabei die Zeichenvorlge in der Arbeit zu überarbeiten. Dazu gehört "leider" auch der Plankopf. Derzeit nutzen wir noch globale Variabelen um Straße, Name etc auszufüllen.

Das soll aber nun automatisch passieren. Daher erstellt unser ERP System nun eine Ini-Datei mit allen wichtigen Werten. Diese Datei liegt in der gleichen Speicherebene wie unsere Zeichnung. Ich bin bis jetzt erfolgreich daran verzweifelt mir die Werte auslesen zu lassen. Das Ziel ist es die verschiedenen Werte in Feldern auszugeben weche automatisch über eine Lisp programierung abgefrugfen werden wenn man die Zeichen Datei öffnet.

Kann mir jemand helfen ?

mit freundlichen Grüßen

Christoph

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1993
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 04. Nov. 2024 12: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 Christoph027 10 Unities + Antwort hilfreich

Klar! Wie weit bisde denn schon mit Auslesen usw...?

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

Christoph027
Mitglied


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

Beiträge: 2
Registriert: 04.11.2024

IBS-CAD 2024

erstellt am: 04. Nov. 2024 13:02    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

Ich habe bereits einige befehle rausgesucht die ich benötige (bitte korrigieren falls ich was falsch habe ):

DEFUN read_file (/ inifile attribs) ->Befehl für lesen der Datei
  (SETQ inifile "P:\test.ini")      ->Datei auswählen mit Dateipfad
  (SETQ inifile (OPEN inifile "r")) ->Befehl für öffnen der Datei
  (SETQ line (READ-LINE inifile))  ->Wert lesen aus der nächsten Zeile
  --> hier springe ich schon in die zweite Zeile oder ? bzw wiederhole den Befehl bis ich die Wunsch Zeile erreicht habe?

  (SETQ attribs (READ-LINE inifile)) -> Gelesenen Wert als Attribut festlegen

(CLOSE inifile)

); End Defun

So und nun bin ich mit meinem Latein am Ende und habe 2 Fragen

1 passen die Befehle
2 Wie bekomme ich sie in ein Feld das sich mit Zeichnungsöffnung aktualisiert

Danke für die Möglichen Rückmeldungen

Grüße Christoph

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1993
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 04. Nov. 2024 14:25    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 Christoph027 10 Unities + Antwort hilfreich

Grundsätzlich ist eine *.ini Datei aber nach einer festgelegten Struktur aufgebaut und nicht nur einfach eine *.txt Datei.
Mit dem Code kannst du erstmal alles aus der ini oder was auch immer für eine Asccii Datei auslesen
Code:
(DEFUN read_file (/ inifile attribs) ;->Befehl für lesen der Datei
  (SETQ inifile "P:\test.ini")      ;->Datei auswählen mit Dateipfad
  (SETQ inifile (OPEN inifile "r")) ;->Befehl für öffnen der Datei
  (while
    (= (type (SETQ line (READ-LINE inifile)))'str)  ;->Wert lesen

  (SETQ attribs (cons line attribs)) ;-> Gelesenen Wert zu Liste hinzufügen
  )

(CLOSE inifile)
attribs
(princ)
); End Defun


Jetzt müsstest du aus der Variablen attribs den oder die benötigten Werte aussieben und dann kommt der Teil, den du auch noch nicht hast, um den/die Werte in Felder oder Attribute oder was auch immer reinzuschreiben.

Ich vermute mal es sollen Attribute einer Blockreferenz sein.
Dazu musst du diese ermitteln:

Code:
(if (setq awahl(ssget "X"(list '(0 . "INSERT")(cons 2 "BLOCKNAME") '(410 . "MODEL))))
....mach was
)

Jetzt die Attribute...
vla-get-attributes
oder per while Schleife durch die Elemente etwa so:
Code:
(while
          (/= "SEQEND"
            (cdr (assoc 0 (entget (setq Ename (entnext Ename)))))
          )
          (setq res (cons Ename res))
        )

und schon bist du fast fertig

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

Andreas Kraus
Mitglied
Elektrotechniker


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

Beiträge: 1459
Registriert: 11.01.2006

WIN 10
ACAD 2022
BricsCAD V23

erstellt am: 05. Nov. 2024 11:12    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 Christoph027 10 Unities + Antwort hilfreich

Hallo Christoph,
ich schreibe seit vielen Jahren meine INI-Dateien so, dass ich direkt mit load die Datei laden kann.
(setq ini-list (load ini-pfad))

Die INI-Dateien werden bei mir mit einem LISP-Tool editiert dass sich auch um die Struktur kümmert.
Die Struktur ist einfach eine Liste und ist so aufgebaut dass ich mit assoc auf einzelne Einträge zugreifen kann.
EDIT: Assoc, wenn der erste Eintrag jeweils mit car geändert wurde und die Info mit Datum und Uhrzeit damit wegfällt

In der Datei muss nur "(quote" vor der eigentlichen Liste stehen und eine schließende Klammer am Dateiende.

Beispiel (gekürzt):

(quote (

(("Symbolpfade" "2020-08-18, 15:44:49") (("0" "./0/") ("1" "./1/") ("2" "./2/") ("3" "./3/") ("M" "./M/") ("4" "./4/") ("4C" "./4C/") ("5-1" "./5-1/") ("k_styles" "./")))
(("Layerdateien" "2020-05-29, 10:51:46") ("./k_.lay"))
(("Layerdatei" "2020-05-29, 10:51:46") "./k_.lay")
(("Stile" "2020-05-29, 10:51:46") "./k_styles.dwg")
...
...
...
))

Funktioniert wunderbar und Listen sind ja in LISP gut zu verarbeiten.


------------------
Geht nicht, gibts nicht

Gruß
Andreas

http://kraus-cad.de

[Diese Nachricht wurde von Andreas Kraus am 05. Nov. 2024 editiert.]

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)2024 CAD.de | Impressum | Datenschutz