1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| function OuvrirFichier(Nom : TFileName) : boolean;
var
F : TFileStream;
F2 : TFileStream;
Data : Byte;
b1:byte;
i:integer;
begin
// Ouvre un fichier test
F := nil;
F2 := nil;
try
// Ouverture d'un flux sur le fichier en lecture. Le fichier reste accessible en lecture seule pour d'autres appli.
F := TFileStream.Create(Nom, fmOpenRead or fmShareDenyWrite);
F2 := TFileStream.Create('C:\RES\Out2.txt', fmOpenRead or fmShareDenyWrite);
F.Position := 0; // Début du flux
F2.Position := 0; // Début du flux
i:=0;
if (pos('.txt',ExtractFileName(Nom))>0) then // Vérification du type du Fichier
begin
// Lecture du fichier
while (F.position < F.Size) do // Tant que la fin du fichier n'est pas atteinte faire :
begin
F.ReadBuffer(data, SizeOf(Byte));
if data=0 then b1:=1 else b1:=data ; // traitement de la data
F2.WriteBuffer(b1, SizeOf(byte)); // enregistrement de la data traité
end;
Result := true;
end
else
begin
MessageDlg('Erreur ce n''est pas un fichier test.', mtError, [mbOk], 0);
Result := false;
end;
F.Free;
F2.Free;
except
on EInOutError do
begin
Result := False;
F.Free;
F2.Free;
MessageDlg('Erreur d''E-S fichier.', mtError, [mbOk], 0);
end;
on EReadError do
begin
Result := False;
F.Free;
F2.Free;
MessageDlg('Erreur de lecture sur le fichier.', mtError, [mbOk], 0);
end;
else
begin
Result := False;
F.Free;
F2.Free;
MessageDlg('Erreur sur le fichier.', mtError, [mbOk], 0);
end;
end; // try
end; |
Partager