TFileStream - Exemples

TFileStream = class (TObject)Interface de TFileStreamExemples de TFileStream
uses System.IO;

var f : TFileStream;

// Création d'un nouveau fichier qui contient 5000 A
f:=TFileStream.Create('D:\MonFichier.txt',
                      FileCreateDisposition.CreateNew, // on crée un nouveau fichier (qui ne doit pas exister)
                      FileAccessMode.Write,            // on veut y accéder uniquement en écriture
                      FileShareMode.None);             // on n'autorise pas les autres process à y accéder
f.Write(StringOfChar('A', 5000));
f.Free; // on libère le fichier

// Ouverture d'un fichier existant en laissant les autres process y accéder
f:=TFileStream.Create('D:\MonFichier.txt',
                      FileCreateDisposition.OpenExisting,          // on ouvre un fichier existant
                      FileAccessMode.Read or FileAccessMode.Write, // on veut y accéder en lecture/écriture
                      FileShareMode.Read);                         // on autorise les autres process uniquement à lire
if f.Size>4000 then begin
   // on lit 1000 octets à partir du 3000ème octet
   f.Position:=3000;
   var s:=f.Read(1000);
   PrintLn(s); // on a lu 1000 A

   // On remplace ces 1000 octets par des espaces
   f.Position:=3000; // on se repositionne car la lecture a déplacé la Position
   f.Write(StringOfChar(' ', 1000));
end;
f.Free; // on libère le fichier

// Ouverture d'un fichier existant en laissant les autres process y accéder
f:=TFileStream.Create('D:\MonFichier.txt',
                      FileCreateDisposition.OpenExisting,         // on ouvre un fichier existant
                      FileAccessMode.Read,                        // on veut y accéder uniquement en lecture
                      FileShareMode.Read or FileShareMode.Write); // on autorise les autres process à lire et écrire
// on lit 2 octets à partir du 3999ème octet
f.Position:=3999;
PrintLn(f.Read(2)); // on a lu ' A'