AGB  ·  Datenschutz  ·  Impressum  







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

Umgang mit "File of array"

Ein Thema von SebE · begonnen am 2. Jun 2008 · letzter Beitrag vom 2. Jun 2008
Antwort Antwort
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#1

Umgang mit "File of array"

  Alt 2. Jun 2008, 10:42
Hallo Leute, ich probier grad bissl mit Files rum und bin auf folgende Frage gestoßen:

Delphi-Quellcode:
const
  BUF_MAX = 200;

type
  buf: array[0..BUF_MAX] of CHAR;

var
  f: file of buf;
  b: buf;

...
assignFile(f, 'a.txt');
reset(f);

while not eof(f) do begin
  read(f, b);

  ...

  end;

...
wie man sieht, will ich immer blockweise eine file auslesen.
die Datei hat eine unbekannte Länge -> muss kein Vielfaches von BUF_MAX sein.

angenommen, beim letzten Lesezugriff besitz die File noch 50 Zeichen -> Zugriffsfehler!
Wie kann ich das Umgehen, ohne die Zeichen alle einzeln zu laden (also mit file of CHAR)?

Vielen Dank für Antworten oder Hinweise.
Sebastian
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.759 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Umgang mit "File of array"

  Alt 2. Jun 2008, 10:51
Guten Morgen,

Du könntest die Filesize ganzzahling durch die Buffergröße teilen
damit hast Du dann die Anzahl der Lesevorgänge.
Oder nach jedem Lesen prüfen wo der Dateizeiger steht (FilePos)
und die Differenz zur Dateigröße ermitteln, ist sie
größer dann kann ein weiterer Lesevorgang durchgeführt werden.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#3

Re: Umgang mit "File of array"

  Alt 2. Jun 2008, 10:56
stimmt schon, das ist eine Möglichkeit,
aber dann müsste ich entweder die letzten Zeichen ignorieren oder halt mit "file of CHAR" laden (was ich umgehen möchte).

Ich Suche eine Möglichkeit mit einem mal den gesamten Puffer zu laden. Falls Datei-Ende, dann zB den Rest des Puffer mit Nullen auffüllen.

Hab ich wohl schlechte Karten, was?
Sebastian
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.759 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Umgang mit "File of array"

  Alt 2. Jun 2008, 11:06
Hallo,

es gibt ja noch mehr Möglichkeiten.

a) Datei in ein FileStream einlesen und Deinen Buffer aus dem FileStream stückweise einlesen
b) Du könntest Dir einmal FileOpen, FileRead anschauen.
Wenn Du mit FileRead arbeitest kracht es nicht wenn Du über das Dateiende liest.
Es werden nur weniger Zeichen in den Buffer eingelesen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
SebE

Registriert seit: 31. Jul 2004
Ort: Chemnitz
316 Beiträge
 
Delphi 7 Personal
 
#5

Re: Umgang mit "File of array"

  Alt 2. Jun 2008, 11:29
Das ist Klasse, Wunderbar...vielen Dank.

Schöne Woche noch
Sebastian
  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 10:28 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