Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  TXT-Datei einlesen

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:  TXT-Datei einlesen (2504 / mal gelesen)
CADMATIC
Mitglied



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

Beiträge: 39
Registriert: 07.02.2011

erstellt am: 09. Jun. 2017 08:57    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,
wenn ich eine txt-datei über Read-Line einlese erhalte ich anstatt einer "0" folgendes Zeichen : "0".
Kurioserweise tritt dieses Verhalten nicht immer auf.
Aus einem "Ä" wird auch ein "ä".
Hat jemand ne Idee woher dies Verhalten kommt und wie man es evt. beheben kann ?

DANKE

Gruß CADMATIC

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 09. Jun. 2017 11:58    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 CADMATIC 10 Unities + Antwort hilfreich

Hallo CADMATIC,

klingt irgendwie nach Codepage Geschichten, oder so. Wenn Du mal die TXT Datei oder zumindest ein Stückchen davon zur Verfügung stellen könntest, könnten sich auch andere mal dieser Sache annehmen.

Gruß
Thomas

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

CADMATIC
Mitglied



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

Beiträge: 39
Registriert: 07.02.2011

erstellt am: 09. Jun. 2017 12: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


TEST.txt

 
Hallo,

es handelt sich um das sogenannte "UTF-8" Format und kommt aus einer Webapplikation.

Gruß CADMATIC

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

spider_dd
Mitglied



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

Beiträge: 1111
Registriert: 27.11.2003

Win 10Pro
Intel(R) Core(TM) i7-7700
NVIDIA Quadro P1000
ACAD, Civil-3D 2018

erstellt am: 09. Jun. 2017 13:44    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 CADMATIC 10 Unities + Antwort hilfreich

Also ich konnte das Verhalten nachvollziehen.
Habe die Textdatei mit einen Texteditor umkonvertiert (im Test von UTF8 nach ASCII) und konnte damit zumindest das Problem mit der "0" beheben. Aber aus "Ä" wurde dabei "{".

Code:

_$ (setq ifile (getfiled "x" "" "txt" 4))
"C:\\Daten\\temp\\TEST.txt"
_$ (setq ifh (open  ifile "r"))
#<file "C:\\Daten\\temp\\TEST.txt">
_$ (setq xz (read-line ifh))
"0;Edelstahl;24;U116;24;U116;11577006;vertikal;60;60;Hättrich;1;1;60;140;"
_$ (close ifh)
nil
_$ (setq ifile (getfiled "x" "" "txt" 4))
"C:\\Daten\\temp\\TESTa.txt"
_$ (setq ifh (open  ifile "r"))
#<file "C:\\Daten\\temp\\TESTa.txt">
_$ (setq xz (read-line ifh))
"0;Edelstahl;24;U116;24;U116;11577006;vertikal;60;60;H{ttrich;1;1;60;140;"
_$ (close ifh)
nil

Also in der Richtung weitersehen.

HTH
Gruß
Thomas

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

cadffm
Moderator
良い精神




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

Beiträge: 21533
Registriert: 03.06.2002

Alles

erstellt am: 09. Jun. 2017 14:04    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 CADMATIC 10 Unities + Antwort hilfreich

nicht UTF-8 sondern UTF-8 BOM
Als Suchbegriff zum einlesen und ggf. Lösungsfindung

------------------
CAD on demand GmbH - Beratung und Programmierung rund um AutoCAD

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

CADMATIC
Mitglied



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

Beiträge: 39
Registriert: 07.02.2011

erstellt am: 09. Jun. 2017 14:28    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

Durch manuelles konvertieren auf ANSI habe ich auch das gewünschte Ergebnis bekommen.
Läßt sich das beim Einlesen im Lisp nicht regeln ? Jede Datei manuell zu konvertieren ist irgendwie nicht so prickelnd.

Gruß CADMATIC

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

neurosis
Mitglied
dipl.ing.


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

Beiträge: 222
Registriert: 22.08.2006

erstellt am: 09. Jun. 2017 15: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 CADMATIC 10 Unities + Antwort hilfreich

probier das mal
Code:

(defun test (server / xml ret)
  (vl-catch-all-apply
    (function
      (lambda ()
        (setq xml (vlax-get-or-create-object "MSXML2.XMLHTTP.3.0"))
        (vlax-invoke-method xml 'open "GET" server :vlax-false)
        (vlax-invoke-method xml 'send)
        (setq ret (vlax-get-property xml 'responsetext))
      )
    )
  )
  (if xml (vlax-release-object xml))
  ret
)

(test "c:\\test.txt")

rueckgabe bei mir:
"0;Edelstahl;24;U116;24;U116;11577006;vertikal;60;60;Hättrich;1;1;60;140;\r\n1;Metall;14;F04/015;14;F04/015;11577006;vertikal;60;60;Hättrich;1;1;60;140;"

gruss
marco

------------------
Marco Heuer
www.arc-aachen.de
Airport Office

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

CADMATIC
Mitglied



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

Beiträge: 39
Registriert: 07.02.2011

erstellt am: 09. Jun. 2017 15:56    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

Danke, das klappt auch bei mir !
Gruß CADMATIC

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

Schachinger
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2040
Registriert: 08.04.2002

AIS2009, PDSU 2012-2015, Plant 3D 2011-2015, NavisWorks 2010-2015, Win7 64bit SP1, Intel Core i7 870, 16 GB RAM, Quadro 2000D

erstellt am: 28. Sep. 2018 08:35    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 CADMATIC 10 Unities + Antwort hilfreich


test.txt

 
Hallo Forum!

Da mein aktuelles Problem eigentlich sehr gut dazu passt greif diesen älteren Thread nochmal auf.

Ich muss einen TXT-File mit UTF-8-Kodierung einlesen. Da in dem TXT-File unter anderem cyrillische Schriftzeichen vorhanden sind bekomm ich bei der Konvertierung zur ANSI-Kodierung natürlich nur Kauderwelsch raus.

Wie kann ich den UTF-8-Textfile mit Lisp einlesen sodass die cyrillischen Texte auch ankommen? 

Anbei ein Beispiel...
Z.B. aus UTF-8-Kodierung "ИЗДАНИЕ" wird in ANSCI-Kodierung "ИЗДÐÐИЕ"


------------------
mfg Siegfried Schachinger
http://www.tbschatz.at

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

Brischke
Moderator
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 (d-tools.eu)

erstellt am: 29. Sep. 2018 16:10    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 CADMATIC 10 Unities + Antwort hilfreich

Hallo Siegfried,
ich habe in Lisp dazu auch keine Lösung gefunden.
Ich habe mir in .Net einen UTF-8-Converter geschrieben, der mir den Dateiinhalt in eine Abfolge von HEX-Codes zurück gibt. Diese können dann ja auch in Lisp in die Texte eingefügt werden.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

Schachinger
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2040
Registriert: 08.04.2002

erstellt am: 01. Okt. 2018 08:51    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 CADMATIC 10 Unities + Antwort hilfreich

Hallo Holger,

Danke für deine Antwort. Sowas in der Art hab ich leider schon befürchtet - und das übersteigt dann meine laienhaften Programmierkentnisse  .

Wir werdens jetzt anders rum angehen:

Bereits im einzulesenden Textfile werden die cyrillischen Schriftzeichen werden durch irgedwelche ANSI-Zeichen (z.B."Ï" anstelle von "И") ersetzt. Somit brauch ich nicht mehr mit UTF-8-Codierung arbeiten.
Beim Einlesen der TXT-Datei mit Lisp ersetzte ich die entsprechenden Zeichen wieder zurück auf cyrillische Zeichen.

Ich schaffe quasi ein Dummy-Alphabet...

Ist zwar nicht wirklich elegant - aber das bekomm ich halt mit meinem Lisp-Halbwissen noch hin 

------------------
mfg Siegfried Schachinger
http://www.tbschatz.at

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

Brischke
Moderator
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 (d-tools.eu)

erstellt am: 01. Okt. 2018 09:38    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 CADMATIC 10 Unities + Antwort hilfreich

Hallo Siegfried,

dann kannst du auch auf der Erstellerseite gleich eine Abfolge von ASCI-Nummern rausschreiben lassen und brauchst dann keine Alphabet-Datei.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

Brischke
Moderator
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 (d-tools.eu)

erstellt am: 01. Okt. 2018 14: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 Nur für CADMATIC 10 Unities + Antwort hilfreich


UTF82ANSICODE.zip

 
Hallo Siegfried,

ich habe eben mal ein Tool geschrieben, welches dir eine UTF-8 kodierte Datei in Ansi-Hex-Codes konvertiert. Darin wird gleich das \\U+ mit eingefügt, so dass du den aus der konvertierten Datei eingelesenen String gleich in ein AutoCAD-Textobjekt einsetzen kannst.

Die UTF82ANSICODE.exe erwartet einen Startparameter, den Dateinamen der UTF-8 Datei (vollständige Pfadangabe).
Im Ergebnis wird dann an den Speicherort eine um ein _UC erweiterte txt-Datei geschrieben.
Diese kannst du dann in Lisp direkt verwenden.

Anbei ebenfalls ein Beispiel, wie man das in Lisp umsetzen könnte.
(Ich habe mit findfile gearbeitet, du kannst aber auch den vollständigen Pfad zur exe eingeben.)

Bei Fragen ...

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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

Schachinger
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2040
Registriert: 08.04.2002

erstellt am: 02. Okt. 2018 10:15    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 CADMATIC 10 Unities + Antwort hilfreich

Hallo Holger,

Wow starkes Tool!

In der Zwischenzeit haben wir die erste Idee mit dem "Dummy-Aphabet" schon mal umgesetzt - damit wir zumindest mal Arbeiten können  .

Sobald wieder etwas Zeit bleibt möcht ichs dann umstellen dass wir auf dein Tool aufbauen.

Grundsätzlich funktioniert meine Lisp-Programm mit den von deinem Tool erstellten Ansi-Files. Einzig der Tabstopp wird innerhalb meines Lisp's nicht mehr als Tabstopp erkannt. Aber das wird dann auch keine große Sache mehr sein. 

------------------
mfg Siegfried Schachinger
http://www.tbschatz.at

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

Brischke
Moderator
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 (d-tools.eu)

erstellt am: 02. Okt. 2018 12:48    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 CADMATIC 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Schachinger:
... Sobald wieder etwas Zeit bleibt möcht ichs dann umstellen dass wir auf dein Tool aufbauen.

Bekommst du das AutoCAD Magazin? Ich habe das Tool so erweitert, dass es direkt als Lisp-Funktion genutzt werden kann. Das Tool wird in einem der nächsten Hefte veröffentlicht, dann kannst du auch solange warten, und hast es bei der Überarbeitung noch einfacher.

Grüße!
Holger

------------------
Holger Brischke
CAD on demand GmbH
Individuelle Lösungen von Heute auf Morgen.


defun-tools Das Download-Portal für AutoCAD-Zusatzprogramme!


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



CNC-Fachexperte (m/w/d)

Als einer der führenden Anbieter technisch anspruchsvoller Komponenten im Bereich Aluminiumdruckguss konzentrieren wir uns auf die Fertigung von Mittel- und Großserien. Die LMG Manufacturing GmbH ist spezialisiert auf hochpräzise Elektromobilitätskomponenten für europäische Kunden in der Automobilindustrie. Durch innovative Technologien und anspruchsvolle Bearbeitungen bieten wir bis zur Einbaureife bearbeitete Komponenten an....

Anzeige ansehenMetallhandwerk
Schachinger
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2040
Registriert: 08.04.2002

erstellt am: 03. Okt. 2018 11:37    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 CADMATIC 10 Unities + Antwort hilfreich

Hallo Holger,

AutoCAD-Magazin bin ich mir nicht sicher - da muss ich mal bei der GF nachfragen (wenn dann beziehen die das).

Wir werdens jetzt aber in Zukunft gleich so ändern das beim Erstellen der TXT-Datei (die kommt aus AVEVA-E3D) cyrillische Schriftzeichen gleich in HEX-Codes umgewandelt werden und wir keine UTF-8-Kodierung mehr brauchen. 

------------------
mfg Siegfried Schachinger
http://www.tbschatz.at

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