Posté le: 26 11 2002 20:23 Sujet du message: J'espère que celui là fonctionne!! |
|
|
| Code: |
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
const LongNp = 30;
NomBinaire = 'c:\Metrique.Bin';
type Chaine = STRING [LongNp];
Personne = RECORD
NomPre : Chaine;
Sexe : CHAR;
Taille, Poids : REAL;
END;
FichBin = FILE OF Personne;
var F: FichBin;
procedure Creer (VAR F : FichBin);
const NomTexte = 'c:\Imperial.txt';
Facteur1 = 0.3048;
Facteur2 = 0.453592;
var UnePers : Personne;
Donnes : TextFile;
Jr, Ms, An, NbPieds, NbPouces, NbLivres : INTEGER;
BEGIN
AssignFile (Donnes, NomTexte);
RESET (Donnes);
AssignFile (F, NomBinaire);
REWRITE (F);
WHILE NOT EOF (Donnes) DO
BEGIN
WITH UnePers DO
BEGIN
READLN(Donnes, NomPre, Jr, Ms, An, NbPieds, NbPouces, NbLivres);
IF Ms > 50 THEN
Sexe := 'F'
ELSE
Sexe:='M';
Taille :=(NbPieds + NbPouces/12) * Facteur1;
Poids := NbLivres*Facteur2
END;
WRITE(F, UnePers)
END;
CloseFile(F);
END;
procedure Affichercontenu (VAR F : FichBin);
const ParEcran = 20;
var UnePers : Personne;
N : INTEGER;
BEGIN
AssignFile (F, NomBinaire);
RESET(F);
N:=0;
WHILE NOT EOF(F) DO
BEGIN
N:=n+1;
READ(F, UnePers);
WITH UnePers DO
WRITELN(n:3,')', nOMpRE, sEXE:2, tAILLE:7:2, pOIDS:6:1);
IF (n MOD ParEcran=0) OR EOF(F) THEN
BEGIN
WRITE('Appuyez sur la touche Entree');
READLN;
END;
END;
CloseFile(F)
END;
function PlusGrande (VAR F:FichBin; LeSexe:CHAr; Code:INTEGER):REAL;
var PG:REAL;
UnePers:Personne;
BEGIN
AssignFile(F, NomBinaire);
RESET(F);
PG:=0.0;
WHILE NOT EOF (F) DO
BEGIN
READ(F, UnePers);
WITH UnePers DO
IF Sexe = LeSexe THEN
IF (Code=1) AND (Taille > PG) THEN
PG:=Taille
ELSE IF (Code=2) AND (Poids > PG) THEN
PG:=Poids;
END;
PlusGrande:=PG
END;
BEGIN
Creer(F);
AfficherContenu(F);
WRITELN ('Dans le fichier ', NomBinaire, ':');
WRITELN;
WRITELN('La taille la plus grande des femmes: ', PlusGrande (F,'F',1):6:2, 'metres');
WRITELN('La taille la plus grande des hommes: ', PlusGrande (F,'M',1):6:2, 'metres');
WRITELN;
WRITELN;
WRITELN('Le poids le plus lourd des femmes: ', PlusGrande(F,'F',2):6:2, 'Kgr');
WRITELN('Le poids le plus lourde des hommes: ', PlusGrande(F,'M',2):6:2, 'Kgr');
WRITELN ('Pour finir tapez ESC');
END;
END.
|
|
|
Vinchenzo Invité
|