Pliki » Operacje

FileRead

FileRead
Moduł: SysUtils

function FileRead(Handle: Integer; var Buffer; Count: Integer): Integer;

Czyta określoną porcję danych z pliku, którego uchwyt określony zostanie w parametrze Handle. Ilość danych określa parametr Count natomiast Buffer musi wskazywać na bufor, do którego przypisane zostaną dane odczytane z pliku.

Poniższy przykład pokazuje sposób na odczytanie zawartości pliku tekstowego:

program Foo;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var
  FileHandle : Integer;
  Buffer : array[0..1024] of Char;
  BytesRead : Integer;
begin
  FileHandle := FileOpen('C:\foo.txt', fmOpenRead);
  try
    repeat
      BytesRead := FileRead(FileHandle, Buffer, 1024);
 
      Write(Buffer);
    until BytesRead = 0;
  finally
    FileClose(FileHandle);
  end;
  Readln;
end.


To samo zadanie można zrealizować przy pomocy funkcji Read, AssignFile, Reset oraz CloseFile.

Funkcja zwraca informację na temat rzeczywistej, odczytanej ilości danych.

Zobacz też:

2 komentarze

chemik143 2008-02-26 22:32

dajesz bufor 0..1024, a to jest 1025 bajtów.. powinno być array of[0..1023]. Tak myślę... i inaczej na ekranie co 1025 znak będzie krzakiem.

lukzak2298 2006-05-09 23:01

po write(buffer) należy wyzerować buffer, gdyż jeżeli braknie danych w pliku do zapełnienia buffer (ostatnia iteracja) to zostaną dopisane resztki z bufferai odczytanych danych będzie więcej o resztki ;) niż było w pliku