![]() |
wie bei char nichts angeben
hi,
bsp.
Delphi-Quellcode:
wenn ich s := #0 setze haut der mit ein leerzeichen rein
var
s : string; begin s := ''; end; var s : char; begin s := ? end; ich könnte ja auch s : string[1]; angeben, möchte ich aber nicht :) |
Re: wie bei char nichts angeben
Zitat:
|
Moin Snoop,
wenn ich Deine Frage richtig verstanden habe: Geht nicht. Ein Char ist immer ein Zeichen gross, egal, was da nun drinsteht. Du wirst wohl oder übel die Stringvariante benutzen müssen. |
ich möchte das in s, wenn es vom typ char ist, den inhalt leeren.
|
Re: wie bei char nichts angeben
Zitat:
Du kannst einen Char-Wert nicht auf leer setzen, ein Char ist immer genau ein Byte lang und beinhaltet irgendeinen Wert zwischen #0 und einschließlich #255. ...:cat:... |
Moin sakura,
Sandwich Antwort ;-) |
das habe ich mir erst auch gedacht ...
ich schreibe einen wert in die datei, mit hilfe von streams und was sehe ich ? ein leerzeichen genau an der stelle wo das #0 sitzen soll ... die datei habe ich mit wordad geöffnet |
In der Datei selbst ist, zumindest ursprünglich, ein #0 Zeichen. Lade Dir mal einen HEX-Editor aus dem Netz, dann wird der auch ein 00 an der Stelle zeigen - das ist ein Fakt.
...:cat:... |
ich habe jetzt
Delphi-Quellcode:
und nun gehts, ich glaube dir das :)
var
s : string[1]; begin s := ''; end; es soll aber nicht 00 in der datei stehen, es soll nichts stehen :) |
Moin Snoop,
Wordpad und Notepad zeigen binäre Nullen als Blank an (und speichern diese dann auch wieder so!). Da die Basis der Windows API C/C++ ist, hier Strings, üblicher Weise, mit einem #00 Zeichen enden, und beide Programme, mehr oder weniger, zur Stringverarbeitung dienen, ist das auch verständlich die Null durch etwas anderes zu ersetzen. Genau genommen kann man sich ja "freuen", dass sie Binärdateien überhaupt einlesen. Falls es Deine Absicht ist eine leere Datei zu erzeugen:
Delphi-Quellcode:
Ungetestet, sollte aber eigentlich gehen.
var
fsWork : TFileStream; begin fsWork := TFileStream.Create('MeineLeereDatei',fmCreate); FreeAndNil(fsWork); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:51 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