Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Was ist in Delphi '\n' ?


g1o2k4 - Fr 24.09.10 11:17
Titel: Was ist in Delphi '\n' ?
Hallo.

Simple Frage: Was ist in Delphi das was in C '\n' ist?


Gausi - Fr 24.09.10 11:22

Der Zeilenumbruch? Den bekommt man in Delphi mit #13#10 hin, ohne die ' ' drumherum, also:

Delphi-Quelltext
1:
zweiZeilenString := 'Eine Zeile' + #13#10 + 'noch eine Zeile';                    


BenBE - Fr 24.09.10 11:23

Wobei man die Plus-Zeichen weglassen kann:

Delphi-Quelltext
1:
'String'#13#10'String';                    


mkinzler - Fr 24.09.10 11:36

Es gibt auch eine Konstante dafür (sLineBreak). Diese war wegen Kylix notwendig und wird auch wieder bei XE2 wichtig, da bei anderen Betriebssystemen dieser abweicht


g1o2k4 - Fr 24.09.10 11:37

danke aber bringt mich nicht wirklich weiter.
es geht um folgendes:

ich will über rs232 befehle senden und empfangen. die schnittstelle kann nur strings senden und empfangen, aber die befehle sind hex kodiert.
ein befehl ist z.b. 0xA0 gefolgt von \n bzw #13#10.
wie wandel ich das am einfachsten in einen string um den ich dann verschicken kann?


Bergmann89 - Fr 24.09.10 11:46

Hey,


Delphi-Quelltext
1:
2:
3:
var
  msg: String;
  msg := '0xA0'+#13#10;

Jetz hast du nen String, den du verschicken kannst. Oder hab ich dir Frage jetz falsch verstanden? In C wird das /n intern doch auch nur in die 2 Zeichen für den Zeilenumbruch verwendet, das mit dem /n ist doch bloß ne Vereinfachung für die Eingabe. Oder bin ich da im Irrglauben?!

MfG Bergmann.


g1o2k4 - Fr 24.09.10 11:57

dann hätte ich ja den hex wert einfach als string, aber nicht konvertiert.

ich brauche quasi senstring(hextostring(A0)). der hex wert soll quasi in das entsprechende ascii zeichen konvertiert und dann geschickt werden.


Tilman - Fr 24.09.10 11:59

Das geht soweit ich weiß mit IntToStr($A0). Zum zeilenumbruch müsstest du herausfinden ob du wirklich #13#10 oder nur #10 brauchst.


Sinspin - Fr 24.09.10 12:00

Wenn ich mich recht erinnere war \n sogar nur #10. #13 ist \r.
Zur Ausgabe im String musst du die Hex-Zahl dann via Chr() in ein Zeichen umwandeln. Und die numerische Representation für den Zeilenumbuch "#10" anhängen:

Delphi-Quelltext
1:
msg := Chr($A0)+#10// 0xA0 = $A0 C -> Delphi                    


jaenicke - Fr 24.09.10 12:05

user profile iconSinspin hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
msg := Chr($A0)+#10;                    

Das geht genauso mit der Raute: :mrgreen:

Delphi-Quelltext
1:
msg := #$A0#10;