Использование класса


{ FILTMAIN.PAS - основной рабочий модуль программы Filter. Автор: Джим Мишель Дата последней редакции: 04/05/97 } unit filtmain; interface { DoFilter выполняет всю работу } procedure DoFilter; implementation uses CmdLine, FileIO; procedure DoFilter; const nOptions = 2; Options : Array [1..nOptions] of OptionRec = ( (OptionChar : "i"; Option : otFilename; Filename : ""), (OptionChar : "o"; Option : otFilename; Filename : "") );
BigBufferSize = 65536; var cRslt : Boolean; iRec : pOptionRec; oRec : pOptionRec; InputFile : TFilterFile; OutputFile : TFilterFile; c : char; begin cRslt := CmdLine.ProcessCommandLine(@Options, nOptions);
if (not cRslt) then Halt; { Убедимся в том, что были заданы имена входного и выходного файлов } iRec := CmdLine.GetOptionRec (@Options, nOptions, "i");
if (iRec^.Filename = "") then begin WriteLn ("Error: input file expected");
Halt; end; oRec := CmdLine.GetOptionRec (@Options, nOptions, "o");
if (oRec^.Filename = "") then begin WriteLn ("Error: output file expected");
Halt; end; { Создаем и открываем входной файл } InputFile := TFilterFile.Create (iRec.Filename, BigBufferSize);
if (not InputFile.Open (fioRead)) then begin WriteLn ("Error opening input file");
Halt; end; { Создаем и открываем выходной файл } OutputFile := TFilterFile.Create (oRec.Filename, BigBufferSize);
if (not OutputFile.Open (fioWrite)) then begin WriteLn ("Error opening output file");
Halt; end; { Обрабатываем каждый символ } while (not InputFile.Eof) do begin c := char (InputFile.GetByte);
c := UpCase (c);
if (not OutputFile.PutByte (byte (c))) then begin WriteLn ("Write error");
Halt; end; end; InputFile.Close; InputFile.Free; OutputFile.Close; OutputFile.Free; end; end.



Содержание раздела