Главная » Pascal, Исходники, Разное » Открытие 250-ти файлов одновременно
Фев
18

Открытие 250-ти файлов одновременно

На языке Паскаль не возможно открыть много файлов одновременно. Пользуясь данным исходником, Вы получаете возможность открыть до 250 файлов одновременно и это не будет иметь никакой нагрузки на ваш ПК.
[sourcecode language=»pascal»]
Unit Extend;
Interface
Implementation
Uses
Dos;
Const
Handles = 255;
Var
Reg : Registers;
begin
Reg.ah := $30;
MsDos(Reg);
if Reg.al<3 then
begin
Writeln(‘Extend Unit Require Dos 3.0 or greater’);
halt(1);
end;

if HeapOrg <> HeapPtr then
begin
Write(‘Heap must be empty before Extend Unit initializes’);
Writeln;
halt(1);
end;
Heapend := ptr(Seg(Heapend^) — (Handles div 8 + 1), Ofs(Heapend^));
[/sourcecode][sourcecode language=»pascal»]
Reg.ah := $4A;
Reg.es := PrefixSeg;
Reg.bx := $FFFF;
msDos(Reg);

Reg.ah := $4A;
Reg.es := PrefixSeg;
Reg.bx := reg.bx — (Handles div 8 + 1);
msDos(Reg);

if (Reg.flags and 1) = 1 then
begin
Writeln(‘Runtime Error ‘, Reg.ax, ‘ in Extend.’);
halt(1);
end;

reg.ah := $67;
reg.bx := Handles;
MsDos(reg);
end.

Program TestEx;
Uses
EXTend;

Type
FileArray = Array [1..250] of Text;

Var
f : ^FileArray;
i : Integer;
s : String;

begin
new(f);
For i:=1 to 250 do
begin
str(i,s);
Assign(f^[i],’Dum’+s+’.txt’);
reWrite(f^[i]);
Writeln(‘Open #’,s);
end;
For i:=1 to 250 do
Write(f^[i],’This is a test File’);
{Close the Files}
For i:=1 to 250 do
begin
close(f^[i]);
Writeln(‘Closing #’,i);
end;
{Erase the Files}
For i:=1 to 250 do
begin
erase(f^[i]);
Writeln(‘Erasing #’,i);
end;
end.
[/sourcecode]



Понравилась статья? Сделай приятно ее автору, поделись с друзьями:


Хотите получать обновления данного блога на EMail?

Введите адрес Почтового Ящика:




Подтвердите подписку в письме пришедшем на Почту, после чего начнете получить рассылку.