Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Letztes Zeichen einer Datei immer #16? (https://www.delphipraxis.net/62862-letztes-zeichen-einer-datei-immer-16-a.html)

PASST 10. Feb 2006 15:27


Letztes Zeichen einer Datei immer #16?
 
Hi NG.

Delphi 4 (update 3)

Ich habe mir als Test eine kurzes Programm geschrieben. Es wird eine Datei geöffnet, die im HEX-Editor nur 3 Zeichen 'abc' enthält. Mit Button1Click lasse ich mir schrittweise ein Zeichen anzeigen. Seltsamerweise zeigt es mir beim vierten Button1Click das Zeichen #16 an.

Warum?

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  s: String;
begin
  SetLength(s, 1);
  fs.Read(s[1], 1);
  label1.Caption := s + ' ' + inttostr(ord(s[1]));
  label2.caption := Inttostr(fs.Position);
  label3.caption := inttostr(fs.size);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  fs := tFileStream.Create('d:\temp\zEnde.txt', fmOpenRead);
  label2.caption := Inttostr(fs.Position);
  label3.caption := inttostr(fs.size);
end;

Oxmyx 10. Feb 2006 15:33

Re: Letztes Zeichen einer Datei immer #16?
 
Wahrscheinlich zeigst du nur an, was gerade zufällig an der Speicherposition im Array steht. Du solltest den Rückgabewert der Read-Methode überprüfen, dann siehst du ob du wirklich etwas eingelesen hast, oder nicht.

PASST 10. Feb 2006 15:37

Re: Letztes Zeichen einer Datei immer #16?
 
Stimmt, es wird wohl ein Zufallswert sein. Beim Anzeigen des vermeintlich letzten Zeiches werden nämlich 0 Bytes gelesen - wie auch zu erwarten war.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:36 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