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 61 62 63 64 65 66 67 68 69 70
|
const
Fichier = 'C:\test.dat';
var
FFile: File;
implementation
{$R *.DFM}
function OuvrirFichier(var F: File; NomFich: String): boolean;
begin
{$I-}
AssignFile(F, NomFich);
if FileExists(NomFich) then
Reset(F, 1)
else
Rewrite(F, 1);
Result := (IOResult = 0);
if not Result then {$I+} exit;
Seek(F, 0);
Result := (IOResult = 0);
{$I+}
end;
//------------------------------------------------------------------
function FermeFichier(var F: File): boolean;
begin
{$I-}
CloseFile(F);
Result := (IOResult = 0);
{$I+}
if not Result then exit;
end;
//------------------------------------------------------------------
function EcrireChaine(S: WideString): boolean;
var
Longu, nbOct: Integer;
begin
Result := false;
if not OuvrirFichier(FFile, Fichier) then exit;
{$I-}
Seek(FFile, 0);
Truncate(FFile);
if IOResult < 0 then exit;
Longu := Length(S);
BlockWrite(FFile, Longu, SizeOf(Longu), nbOct);
if (IOResult <> 0) or (SizeOf(Longu) <> nbOct) then exit;
BlockWrite(FFile, S[1], Longu, nbOct);
if (IOResult <> 0) or (Longu <> nbOct) then exit;
{$I+}
Result := FermeFichier(FFile);
end;
//------------------------------------------------------------------
function LireChaine(var S: Widestring): boolean;
var
Longu,
nbOct: Integer;
begin
Result := false;
if not OuvrirFichier(FFile, Fichier) then exit;
{$I-}
Seek(FFile, 0);
if IOResult <> 0 then exit;
BlockRead(FFile, Longu, 4, nbOct); //j'ai aissaie de changè le 4 en 8
if (IOResult <> 0) or (nbOct <> 4) then exit;
SetLength(S, Longu);
BlockRead(FFile, S[1], Longu, nbOct);
if (IOResult <> 0) or (nbOct <> Longu) then exit;
{$I+}
Result := FermeFichier(FFile);
end; |
Partager