Хакеp пpиходит к специалистy по паpоноpмальным явлениям:
- Доктоp, помогите мне! У меня дома такое твоpиться! Диски по комнате летают, сами в компьютеp ставяться и Windows yстанавливают!
- У-y! Батенька, да y вас полтеpГейтс!
type
TByteSet = setof byte;
procedure ProcessFile(const InFileName, OutFileName:
string; Valid: TByteSet);
var
InFile, OutFile: file;
InBuf, OutBuf: PByteArray;
InPos, OutPos: word;
BytesRead: word;
begin
OutBuf := nil;
New(InBuf);
try
New(OutBuf);
AssignFile(InFile, InFileName);
AssignFile(OutFile, OutFileName);
Reset(InFile, 1);
Rewrite(OutFile, 1);
repeat
Blockread(InFile, InBuf^, SizeOf(InBuf^), BytesRead);
OutPos := 0;
for InPos := 0 to BytesRead - 1 dobeginif InBuf^[InPos] in Valid thenbegin
inc(OutPos);
end;
end;
if OutPos > 0 then
BlockWrite(OutFile, OutBuf^, OutPos);
until BytesRead <> SizeOf(InBuf^);
CloseFile(InFile);
CloseFile(OutFile);
finallyif OutBuf <> nilthen
Dispose(OutBuf);
Dispose(InBuf);
end;
end;
Статья Быстрая обработка файла раздела Файловая система Файлы может быть полезна для разработчиков на delphi & pascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.