diff --git a/HEAD.PAS b/HEAD.PAS index 9a33a4d..37e3d85 100644 --- a/HEAD.PAS +++ b/HEAD.PAS @@ -15,7 +15,7 @@ Var FileView:Text; OptionFlag:OptionFlagType; FileName,CurrLine:String; - + Function StringToChar(S:String;Index:Byte):Char;Begin If Length(S)<=Index Then StringToChar:=S[Index] Else StringToChar:=#0; @@ -27,12 +27,18 @@ BEGIN MaxBuffer:=32767; FileName:=''; If(ParamStr(1)='/?')or(ParamStr(1)='--help')or(ParamStr(1)='-h')Then Begin - WriteLn('HEAD : Cette commande permet d''afficher le debut du fichier.'); + WriteLn('HEAD : Cette commande permet d''afficher le d‚but du fichier.'); + WriteLn; + WriteLn('Syntaxe : head nomdufichier [--bytes N] [--lines N]'); WriteLn; - WriteLn('Syntaxe : head nomdufichier'); + WriteLn(' nomdufichier Ce paramŠtre permet d''indiquer le fichier … afficher.'); + WriteLn(' --bytes N Ce paramŠtre permet d''afficher les nombres ', + 'd''octets sp‚cifi‚ … partir du d‚but.'); + WriteLn(' --lines N Ce paramŠtre permet d''afficher le nombre de ', + 'ligne sp‚cifi‚ … partir du d‚but.'); End Else - If ParamCount > 0 Then Begin + If ParamCount>0 Then Begin For I:=1 to ParamCount do Begin If OptionFlag<>_None Then Begin Case OptionFlag of @@ -55,17 +61,21 @@ BEGIN End; If FileName<>''Then Begin I:=0; - Assign(FileView,FileName); - Reset(FileView); - While Not EOF(FileView)do Begin - ReadLn(FileView,CurrLine); - WriteLn(Output,CurrLine); - Inc(CurrSize,Length(CurrLine)); - If CurrSize>MaxBuffer Then Break; - Inc(I); - If I>=MaxLine Then Break; - End; - Close(FileView); + {$I-}Assign(FileView,FileName); + Reset(FileView);{$I+} + If IoResult=0Then Begin + While Not EOF(FileView)do Begin + ReadLn(FileView,CurrLine); + WriteLn(Output,CurrLine); + Inc(CurrSize,Length(CurrLine)); + If CurrSize>MaxBuffer Then Break; + Inc(I); + If I>=MaxLine Then Break; + End; + Close(FileView); + End + Else + WriteLn('Erreur de lecture du fichier ',FileName); End Else Begin @@ -92,4 +102,4 @@ BEGIN If I > MaxLine Then Break; End; End; -END. \ No newline at end of file +END.