Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Fehler im String (https://www.delphipraxis.net/192216-fehler-im-string.html)

rudi01 29. Mär 2017 22:10

Fehler im String
 
N'Abend @all,

nach langer Zeit mal wieder hier ... :-D mit einem Problem:( :

Ich parse GCode-Dateien für den 3D Druck, ganz trivial, dachte ich.
Das sind Textdateien die Koordinaten enthalten und noch ein wenig mehr.

Solch eine Textzeile sollte so aussehen: 'G0 F7200 X98.062 Y103.989'

Ein paar Zeilen haben jedoch solchen Inhalt: 'G0 F7200 X98.062 Y103.989'#$1D

Das ist der Inhalt der Zeile, wie er mir im Debugger angezeigt wird, hinter den Hochkommata.
Notepad zeigt da gar nichts :?

Eine ganz triviale Frage: Wie kann ich den Zusatz #$1D dort entfernen?
Ist das eventuell ein nichtdruckbares Zeichen?
Ich habe leider keinen Einfluss auf das Programm, dass die GCode-Dateien exportiert.

Danke für Eure Hilfe - Rudi

a.def 29. Mär 2017 22:47

AW: Fehler im String
 
Google sagt mir, dass $1D => CR ist und somit wohl ein Zeilenumbruch.
Hast du schon einmal Trim() versucht?

nahpets 29. Mär 2017 22:53

AW: Fehler im String
 
Die Bedeutung von Steuerzeichen kannst Du u. a. hier nachlesen: http://serielleschnittstelle.de/inde...i-tabelle.html

Trivial entfernen:
Delphi-Quellcode:
s := 'G0 F7200 X98.062 Y103.989'#$1D;
s := AnsiReplaceText(s,#$1D,'')
Zeilenumbruch ist $0D bzw. $0D$0A -> #13 bzw. #13#10.

Trim funktioniert ebenfalls, da es Leerzeichen und Steuerzeichen entfernt.

a.def 29. Mär 2017 23:22

AW: Fehler im String
 
Trim :thumb:

Benutze ich generell immer, um Benutzereingaben bzw. eingelesene Inhalte aus Dateien "sicher" weiter zu verarbeiten.
Sollte man natürlich nicht da nutzen, wo solche Zeichen ausdrücklich erwünscht sind.

rudi01 30. Mär 2017 06:00

AW: Fehler im String
 
Moin,

OMG - es ist so einfach:oops:

Vielen Dank

p80286 30. Mär 2017 07:28

AW: Fehler im String
 
könnte es sein, daß der Groupseperator hier eine Funktion erfüllt?
Steuerzeichen einfach mal so wegwerfen, halte ich für etwas kurzsichtig.

Gruß
K-H

himitsu 30. Mär 2017 08:02

AW: Fehler im String
 
GCODE ist ein TextFormat.
Der Zeilenumbruch und die Leerzeichen sind die einzigen unsichtbaren Steuerzeichen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:26 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz