FileRead

Adam Boduch
FileRead
Moduł: SysUtils
```delphi 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 komentarzy

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.

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