Pliki » Operacje

FileOpen

  • 2010-10-31 18:27
  • 0 komentarzy
  • 392 odsłony
  • Oceń ten tekst jako pierwszy
FileOpen
Moduł: SysUtils

function FileOpen(const FileName: string; Mode: LongWord): Integer;

Na podstawie ścieżki pliku (FileName) oraz trybu (Mode) otwiera plik i zwraca jego uchwyt. W przypadku gdy funkcja zwróci wartość -1, oznacza to, że otwarcie pliku nie powiodło się - wartość 0 oznacza prawidłowe otwarcie.

FileOpen często może okazać się prostszym sposobem manipulacji plikami niż zawarte w module System funkcje i procedury służące do manipulacji plikami (w tym AssignFile, Reset, ReWrite). 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.

Drugim parametrem funkcji FileOpen musi być flaga określająca sposób dostępu do pliku (tylko do odczytu, tylko do zapisu itp.). Flagi te (Stałe) zadeklarowane są w module SysUtils i prezentują się następująco:

const
    fmCreate         = $FFFF;
    fmOpenRead       = $0000;
    fmOpenWrite      = $0001;
    fmOpenReadWrite  = $0002;
 
    fmShareCompat    = $0000 platform;
    fmShareExclusive = $0010;
    fmShareDenyWrite = $0020;
    fmShareDenyRead  = $0030 platform;
    fmShareDenyNone  = $0040;


Zobacz też: