AGB  ·  Datenschutz  ·  Impressum  







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

TFileStream: Textdatei auslesen

Ein Thema von Pseudemys Nelsoni · begonnen am 3. Jan 2005 · letzter Beitrag vom 3. Jan 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

TFileStream: Textdatei auslesen

  Alt 3. Jan 2005, 10:24
hi,

ich möchte aus einer datei meine 15zeichen langen strings auslesen, ich habe mir gedacht das ich es mit einer while schleife mache, nur wie? ich dachte an "while bytesread = 15 do...".
Das würde aber heissen das ich das "Read" von TFileStream VOR der schleife schreiben müsste... aber da das read wiederrum nicht in der schleife ist kann damit auch nur 1 durchgang funktionieren oder?

ich hatte das bis jetzt ca so und weiss nich weiter:

Delphi-Quellcode:
procedure TBL.Load(const AFileName: string);
var
  Fs: TFileStream;
  BytesRead: Integer;
  Buffer: array[1..15] of Char;
begin
  Fs := TFileStream.Create(AFileName, fmOpenRead + fmShareDenyNone);
  try
    BytesRead := Fs.Read(Buffer, Length(Buffer));
    while BytesRead = 15 do...
    // hm....
  finally
    Fs.Free;
  end;
end;
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie
Online

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: TFileStream: Textdatei auslesen

  Alt 3. Jan 2005, 10:29
Moin,

wie wär's mit
Delphi-Quellcode:
while Fs.Read(Buffer, Length(Buffer)) = 15 do
  // hat geklappt...
MfG
Stevie
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#3

Re: TFileStream: Textdatei auslesen

  Alt 3. Jan 2005, 10:30
Hallo,
versuch es mal wie folgt:
Delphi-Quellcode:
procedure TBL.Load(const AFileName: string);
var
  Fs: TFileStream;
  BytesRead: Integer;
  Buffer: array[1..15] of Char;
begin
  Fs := TFileStream.Create(AFileName, fmOpenRead + fmShareDenyNone);
  try
    While Fs.Position<=Fs.Size do
      begin
      BytesRead := Fs.Read(Buffer, Length(Buffer));
       // Hier geht's dann weiter
      end; // While Fs.Position<=Fs.Size do
  finally
    Fs.Free;
  end;
end;
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: TFileStream: Textdatei auslesen

  Alt 3. Jan 2005, 10:31
Zitat von Stevie:
Moin,

wie wär's mit
Delphi-Quellcode:
while Fs.Read(Buffer, Length(Buffer)) = 15 do
  // hat geklappt...
MfG
Stevie
Das klappt aber nur, wenn sich die Anzahl der Zeichen in der Textdatei ohne Rest durch 15 teilen läßt. Wenn ein Rest auftritt, werden die letzten Zeichen in der Textdatei nicht gelesen.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie
Online

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

Re: TFileStream: Textdatei auslesen

  Alt 3. Jan 2005, 10:33
Zitat von Jens Schumann:
Das klappt aber nur, wenn sich die Anzahl der Zeichen in der Textdatei ohne Rest durch 15 teilen läßt. Wenn ein Rest auftritt, werden die letzten Zeichen in der Textdatei nicht gelesen.
Dann guck dir mal die Vorgabe oben an!
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: TFileStream: Textdatei auslesen

  Alt 3. Jan 2005, 10:37
danke euch zwei

btw:

Delphi-Quellcode:
procedure TBL.Load(const AFileName: string);
var
  Fs: TFileStream;
  BytesRead: Integer;
  Buffer: array[1..15] of Char;
begin
  Fs := TFileStream.Create(AFileName, fmOpenRead + fmShareDenyNone);
  try
    While Fs.Position<=Fs.Size do
      begin
      BytesRead := Fs.Read(Buffer, Length(Buffer));
       // Hier geht's dann weiter
      end; // While Fs.Position<=Fs.Size do
  finally
    Fs.Free;
  end;
end;

^^^^ dann brauch ich die variable "BytesRead" aber nicht oder?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie
Online

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#7

Re: TFileStream: Textdatei auslesen

  Alt 3. Jan 2005, 10:39
Es sei denn, du hast wirklich noch nen Rest, und willst den wissen...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#8

Re: TFileStream: Textdatei auslesen

  Alt 3. Jan 2005, 10:39
Zitat von Pseudemys Nelsoni:
danke euch zwei

btw:


^^^^ dann brauch ich die variable "BytesRead" aber nicht oder?
Mit BytesRead kannst Du dann prüfen, ob tatsächlich 15 Bytes gelesen wurden.
Ich würde es sicherheitshalber prüfen bevor ich die Bytes verarbeitete
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: TFileStream: Textdatei auslesen

  Alt 3. Jan 2005, 10:41
Das ist nicht sehr günstig ständig Position und Größe abzufragen und zu vergleiche. Besser wäre:
Delphi-Quellcode:
procedure TBL.Load(const AFileName: string);
var
  Fs: TFileStream;
  BytesRead: Integer;
  Buffer: array[1..15] of Char;
begin
  Fs := TFileStream.Create(AFileName, fmOpenRead + fmShareDenyNone);
  try
    repeat
      BytesRead := Fs.Read(Buffer, Length(Buffer));
       // Hier geht's dann weiter
     until BytesRead < sizeof(Buffer);
  finally
    Fs.Free;
  end;
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#10

Re: TFileStream: Textdatei auslesen

  Alt 3. Jan 2005, 10:54
Zitat von Luckie:
Das ist nicht sehr günstig ständig Position und Größe abzufragen und zu vergleiche. Besser wäre:
Delphi-Quellcode:
procedure TBL.Load(const AFileName: string);
var
  Fs: TFileStream;
  BytesRead: Integer;
  Buffer: array[1..15] of Char;
begin
  Fs := TFileStream.Create(AFileName, fmOpenRead + fmShareDenyNone);
  try
    repeat
      BytesRead := Fs.Read(Buffer, Length(Buffer));
       // Hier geht's dann weiter
     until BytesRead < sizeof(Buffer);
  finally
    Fs.Free;
  end;
end;
Stimmt. Luckie's Version ist eindeutig schneller.
I come from outer space to save the human race
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:35 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