Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi wie bei char nichts angeben (https://www.delphipraxis.net/2957-wie-bei-char-nichts-angeben.html)

Snoop007 15. Feb 2003 21:43


wie bei char nichts angeben
 
hi,
bsp.
Delphi-Quellcode:
var
  s : string;
begin
  s := '';
end;

var
  s : char;
begin
  s := ?
end;
wenn ich s := #0 setze haut der mit ein leerzeichen rein
ich könnte ja auch s : string[1]; angeben, möchte ich aber nicht :)

Chewie 15. Feb 2003 21:47

Re: wie bei char nichts angeben
 
Zitat:

Zitat von Snoop007
möchte ich aber nicht :)

Was möchtest du denn? ich versteh nämlich nicht, was du fragen willst :(

Christian Seehase 15. Feb 2003 21:49

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.

Snoop007 15. Feb 2003 21:51

ich möchte das in s, wenn es vom typ char ist, den inhalt leeren.

sakura 15. Feb 2003 21:52

Re: wie bei char nichts angeben
 
Zitat:

Zitat von Snoop007
wenn ich s := #0 setze haut der mit ein leerzeichen rein
ich könnte ja auch s : string[1]; angeben, möchte ich aber nicht :)

Falsch, es ist nur ein #0 Zeichen drinn, viele Progs können das nicht darstellen - wie auch...
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:...

Christian Seehase 15. Feb 2003 21:55

Moin sakura,

Sandwich Antwort ;-)

Snoop007 15. Feb 2003 21:57

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

sakura 15. Feb 2003 22:01

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:...

Snoop007 15. Feb 2003 22:05

ich habe jetzt
Delphi-Quellcode:
var
  s : string[1];
begin
  s := '';
end;
und nun gehts, ich glaube dir das :)

es soll aber nicht 00 in der datei stehen, es soll nichts stehen :)

Christian Seehase 15. Feb 2003 22:50

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:
var
  fsWork : TFileStream;

begin
  fsWork := TFileStream.Create('MeineLeereDatei',fmCreate);
  FreeAndNil(fsWork);
end;
Ungetestet, sollte aber eigentlich gehen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 Uhr.
Seite 1 von 2  1 2      

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