Posté le: 19 11 2002 17:30 Sujet du message: UfichierRobuste (Delphi 6) |
|
|
| Code: | unit UFichierRobuste;
interface
USES Windows,Messages,SySUtils,Classes,Graphics,Controls,Forms,
Dialogs, Menus, StdCtrls;
type TForm1 = class(TForm)
end;
var Form1 : Tform1;
sortir: Boolean;
f: TextFile;
Nomf: String[30];
Ligne: String;
succes: Byte;
PROCEDURE OuvertureFichierEnLecture(VAR F:TextFile;VAR Success:BYTE);
PROCEDURE OuvertureFichierEnEcriture(VAR F:TextFile;VAR Success:BYTE);
PROCEDURE OuvertureFichierEnAppend(VAR F:TextFile;VAR Success:BYTE);
PROCEDURE FermetureFichier(VAR F:TextFile);
PROCEDURE ErrorLevel(Var Succes: byte);
implementation
Procedure ErrorLevel(Var succes : byte);
Begin
Case succes of
2: ShowMessage('Fichier non trouvé');
3: ShowMessage('Chemin du fichier non trouvé');
4: ShowMessage('Trop de fichiers ouverts');
5: ShowMessage('Acces du fichier interdit');
6: ShowMessage('Indicateur de fichier invalide');
15: ShowMessage('Numero de lecteur invalid');
100: ShowMessage('Erreur de lecture sur le disque');
101: ShowMessage('Erreur en écriture, disque plein');
102: ShowMessage('Fichier non assigné');
103: ShowMessage('Fichier non ouvert');
104: ShowMessage('fichier non ouvert pour lecture');
105: ShowMessage('Fichier non ouvert pour ecriture');
106: ShowMessage('Format de lecture numérique invalide');
Else ShowMessage('Erreur inconnu... !');
end;
end;
PROCEDURE OuvertureFichierEnLecture(VAR F:TextFile;VAR Success:BYTE);
VAR S,NomF : STRING;
CodeErreur : byte;
BEGIN
Sortir := False;
Repeat
S:= InputBox('Nom du fichier:','Entrez le nom du fichier:','0');
NomF:=S;
If ((NomF = 'F') or (NomF = 'f')) THEN
begin
ShowMessage('Attention ! Vous avez tapez F pour terminer le programme!');
sortir := True;
Exit;
end;
If NomF = '' Then showMessage('Ouverture impossible, Entrer le nom');
{$I-}
AssignFile(F,NomF);
RESET(F);
CodeErreur:=IOResult;
{$I+}
IF (CodeErreur<>0) OR (NomF='') THEN
If NomF = '' THEN ShowMessage('Ouverture impossible, introduiser le nom')
Else
begin
ShowMessage('Ouverture impossible,Erreur # '+IntToStr(CodeErreur));
ErrorLevel(CodeErreur);
end;
Until (Codeerreur=0) and (NomF <> '');
ShowMessage('Fichier '+NomF+' ouvert en lecture');
END;
PROCEDURE OuvertureFichierEnEcriture(VAR F:TextFile;VAR Success:BYTE);
VAR S,NomF : STRING;
CodeErreur : Byte;
BEGIN
sortir := False;
Repeat
S:= InputBox('Nom du fichier:','Entrez le nom du fichier:','0');
NomF:=S;
If ((NomF = 'F') or (NomF = 'f')) THEN
Begin
ShowMessage('Attention vous avez tappez F pour terminer le programme !');
sortir := TRUE;
Exit
end;
If NomF = '' THEN ShowMessage('Ouverture impossible, Introduiser le nom');
{$I-}
AssignFile(F,NomF);
REWRITE(F);
CodeErreur:=IOResult;
{$I+}
IF (CodeErreur<>0) OR (NomF='') THEN
If NomF = '' THEN ShowMessage('Ouverture impossible, introduiser le nom')
Else
begin
ShowMessage('Ouverture impossible,Erreur # '+IntToStr(CodeErreur));
ErrorLevel(CodeErreur);
end;
Until (Codeerreur=0) and (NomF <> '');
ShowMessage('Fichier '+NomF+' ouvert en lecture');
END;
PROCEDURE OuvertureFichierEnAppend(VAR F:TextFile;VAR Success:BYTE);
VAR S,NomF : STRING;
CodeErreur : Byte;
BEGIN
sortir := False;
Repeat
S:= InputBox('Nom du fichier:','Entrez le nom du fichier:','0');
NomF:=S;
If ((NomF = 'F') or (NomF = 'f')) THEN
Begin
ShowMessage('Attention vous avez tappez F pour terminer le programme !');
sortir := TRUE;
Exit
end;
If NomF = '' THEN ShowMessage('Ouverture impossible, Introduiser le nom');
{$I-}
APPEND(F);
CodeErreur:=IOResult;
{$I+}
IF (CodeErreur<>0) OR (NomF='') THEN
If NomF = '' THEN ShowMessage('Ouverture impossible, introduiser le nom')
Else
begin
ShowMessage('Ouverture impossible,Erreur # '+IntToStr(CodeErreur));
ErrorLevel(CodeErreur);
end;
Until (Codeerreur=0) and (NomF <> '');
ShowMessage('Fichier '+NomF+' ouvert en Append');
END;
PROCEDURE FermetureFichier(VAR F:TextFile);
Var CodeErreur: Byte;
BEGIN
{$I-}
CloseFile(F);
Codeerreur := IOResult;
{$I-}
If codeerreur <> 0 THEN showmessage('Erreur !! Fichier non ouvert')
Else ShowMessage('Le fichier a été fermé !')
END;
end. |
|
|
Vinchenzo Invité
|