AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TFileStream.Write / .Read

Ein Thema von StanY · begonnen am 10. Dez 2004 · letzter Beitrag vom 10. Dez 2004
Antwort Antwort
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#1

TFileStream.Write / .Read

  Alt 10. Dez 2004, 13:45
Ich habe das Problem, dass ich per TFileStream eine Integervariable hineinschreibe, sie jedoch falsch ausglesen wird.

Write:
Delphi-Quellcode:
  try
    F := TFileStream.Create(FName,fmCreate); //ja, FName ist gesetzt
  finally
    Size := Length(Connection);
    WriteLn(Size); //LIEFERT 1 ZURÜCK
    F.Write(Size,SizeOf(Size));

    F.Free;
  end;
Read:
Delphi-Quellcode:
  try
    F := TFileStream.Create(FName,fmOpenRead); //ja, FName ist gesetzt
  finally
    Size := F.Read(Size,SizeOf(Size));
    WriteLn(IntToStr(Size)); //GIBT 4 AUS
    
    F.Free;
  end;
Was mache ich falsch?

edit: ui, hundertste Beitrag - er, Frage ^^
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: TFileStream.Write / .Read

  Alt 10. Dez 2004, 13:47
So geht es:
Delphi-Quellcode:
  try
    F := TFileStream.Create(FName,fmOpenRead); //ja, FName ist gesetzt
  finally
    F.Read(Size,SizeOf(Size));
    WriteLn(IntToStr(Size)); //GIBT 4 AUS
   
    F.Free;
  end;
Die Methode TStream.Read gibt als Rückgabewert die Zahl der ausgelesenen Bytes
  Mit Zitat antworten Zitat
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#3

Re: TFileStream.Write / .Read

  Alt 10. Dez 2004, 13:52
Danke (:.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TFileStream.Write / .Read

  Alt 10. Dez 2004, 14:03
Was sind das für seltsame Ressourcenschutzblöcke?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  fs: TFileStream;
  i: Integer;
begin
  fs := TFileStream.Create('d:\test.txt', fmCreate);
  try
    i := 36;
    fs.WriteBuffer(i, sizeof(Integer));
  finally
    FreeAndNil(fs);
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  fs: TFileStream;
  i: Integer;
begin
  fs := TFileStream.Create('d:\test.txt', fmOpenRead);
  try
    fs.ReadBuffer(i, sizeof(Integer));
    ShowMessage(IntToStr(i));
  finally
    FreeAndNil(fs);
  end;
end;
so wie ihr die da habt bringen sie absolut nichts.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#5

Re: TFileStream.Write / .Read

  Alt 10. Dez 2004, 14:11
Naja, SizeOf(Size) und SizeOf(Integer) sind ja, da Size eine Integervariable ist, deckungsggliech?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: TFileStream.Write / .Read

  Alt 10. Dez 2004, 14:14
Jupp. Hat aber nichts damit zu tun, dass dein Ressourcenschutzblock für den Popo ist und somit eigentlich keiner ist. Was wenn es beim Schreiben kracht? Dann fliegst du aus dem finally Abschnitt raus und wie geht es dann weiter?

Der finally Abschnittt ist dazu da, dass Code noch abgearbeitet wird, wenn im vorangegangenem try Abschnitt eine Exception aufgetreten ist.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#7

Re: TFileStream.Write / .Read

  Alt 10. Dez 2004, 14:15
Zitat von StanY:
Naja, SizeOf(Size) und SizeOf(Integer) sind ja, da Size eine Integervariable ist, deckungsggliech?
Naja, ihm ging es aber mehr darum, was du vor und was du nach dem finally schreibst.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
StanY

Registriert seit: 5. Aug 2004
145 Beiträge
 
#8

Re: TFileStream.Write / .Read

  Alt 10. Dez 2004, 14:37
Achso, okay. Danke (:.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 Uhr.
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