![]() |
Re: Problem mit #0 im String
Stimmt ja.
gibt es keinen offiziellen standard wie man 0 in C Strings verpackt? Funktioniert '^A' ? |
Re: Problem mit #0 im String
Steuerzeichen sind Steuerzeichen. Selbst WENN #0 einen String nicht abschneiden würde, gäbe es kein darstellbares Zeichen dafür, wie auch für die meisten der unteren ASCII Zeichen. Sie sind eben nicht dafür gedacht, waren es auch nie und nirgends. End of Story.
Daher ist es auch seit Anbeginn aller Tage ein no-go Binärdaten in Strings zu halten. Dafür gibt es Arrays und Streams. |
Re: Problem mit #0 im String
Zitat:
|
Re: Problem mit #0 im String
Zur Visualisierung kann man sich ja auch schnell was basteln:
Delphi-Quellcode:
Bei Bedarf auch #32 als <SPACE> ...€: Done
function VisualizeASCII(Text : String; SpaceToo : Boolean) : String;
const ASCII_Codes : array[#0..#31] of String = ( '<NUL>', '<SOH>', '<STX>', '<ETX>', '<EOT>', '<ENQ>', '<ACK>', '<BEL>', '<BS>', '<TAB>', '<LF>', '<VT>', '<FF>', '<CR>', '<SO>', '<SI>', '<DLE>', '<DC1>', '<DC2>', '<DC3>', '<DC4>', '<NAK>', '<SYN>', '<ETB>', '<CAN>', '[i]', '<SUB>', '<ESC>', '<FS>', '<GS>', '<RS>','<US>'); DEL_Code = '<DEL>'; SPACE_Code = '<SPACE>'; var i : Integer; begin Result := ''; for i := 1 to Length(Text) do case Text[i] of #0..#31 : Result := Result + ASCII_Codes[Text[i]]; #32 : if SpaceToo then Result := Result + SPACE_Code else Result := Result + ' '; #127 : Result := Result + DEL_Code; else Result := Result + Text[i]; end; end; €2: 127 ist DEL nicht ESC :oops: |
Re: Problem mit #0 im String
Zitat:
Es wird nur zur Einfachheit das oft als String dargestellt. Gelegentlich werden auch andere Endzeichen genutzt. Aber das kommt auf das Protokoll an. |
Re: Problem mit #0 im String
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:02 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