type
TForm1 = class(TForm)
...
private
{ Private declarations }
procedure doit;
public
{ Public declarations }
end;
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ implementation:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
ΠΠ΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π² ΠΊΠ½ΠΈΠ³Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡΡ. Π’Π΅ΠΊΡΡ, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠΉ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π°, Π²ΡΠ΄Π΅Π»Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π°Ρ ΠΏΠΎΠ»ΡΠΆΠΈΡΠ½ΡΠΌ ΡΡΠΈΡΡΠΎΠΌ.
procedure TForm1.doit();
var
f1, f2: file of Byte; //Π Π°Π±ΠΎΡΠ° Ρ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΈ Π²ΡΠΎΡΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ
ΡΠΎΡ: Byte; //ΠΠ»Ρ ΠΏΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ
sizez: LongInt; //Π₯ΡΠ°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°
begin
{$I-} //ΠΡΠΊΠ»ΡΡΠ°Π΅ΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΠΈ
//Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°
try //ΠΠ°ΡΠ°Π»ΠΎ Π±Π»ΠΎΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
//Π‘Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ f1 Ρ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ
AssignFile(f1, from.Text);
//Π‘Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ f2 ΡΠΎ Π²ΡΠΎΡΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ
AssignFile(f2, where.Text);
Reset(f1); //ΠΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π½Π° ΡΡΠ΅Π½ΠΈΠ΅
sizez:= Trunc(FileSize(f1)); //ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°
//ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
Label4.Caption:= IntToStr(sizez div 1024) + 'ΠΠ±';
{Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ}
Rewrite(f2);
while not Eof(f1) do
begin //ΠΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΠΊΠΎΠ½Π΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
//Π‘ΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
BlockRead(fl, cop, 1);
//ΠΠ°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ»
BlockWrite(f2, cop, 1);
end;
CloseFile(f1); //ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°ΠΉΠ»
CloseFile(f2); //ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ»
finally;
end;//ΠΠΎΠ½Π΅Ρ Π±Π»ΠΎΠΊΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
if IOResult<> 0 //ΠΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°
then MessageDlg('ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π°!', mtError, [mbOk],0) //ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
else begin
{ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ Π±ΡΠ»ΠΎ, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΠΊΠ½ΠΎ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ}
ShowMessage('Π£ΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΎ!');
end;
end;
β Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ·ΡΠΊΠ° Object Pascal (ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΡ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ Π΄Ρ.) ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π.
ΠΡΠ° ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ². Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ±ΡΠ°Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, Π½Π΅ Π±ΡΠ»ΠΎ Π»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΠΈΡ ΠΎΡΠΊΡΡΡΠΈΠΈ. ΠΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ Π±ΡΠ»ΠΎ, ΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΠΌ ΡΡΠΈΡΡΠ²Π°ΡΡ Π±Π°ΠΉΡΡ ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°, Π·Π°ΠΏΠΈΡΡΠ²Π°Ρ ΠΈΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ. ΠΡΠ»ΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΎ ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, ΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΎΡΠ΅Π΄ΡΡΠ° doit Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ:
procedure TForm1.Button1Click{Sender: TObject);
begin
doit;
end;
ΠΠΎ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΡΡΠ΅Π·Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΡΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°:
procedure TForm1.Button5Click(Sender: TObject);
begin
doit;//ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ
DeleteFile(from.Text); //ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΡΠ°ΠΉΠ»
end;
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π²ΡΠ±ΠΎΡΠ° ΠΈ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΡΡ ΠΎΠΊΠΎΠ½. ΠΠ»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ (ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ) ΡΠ°ΠΉΠ»Π° ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnClick (ΠΊΠ½ΠΎΠΏΠΊΠ΅ Button2 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ from):
procedure TForm1.Button2Click(Sender: TObject);
begin
if Open1.Execute
then from.Text:= Open1.FileName
else ShowMessage('Π€Π°ΠΉΠ» Π½Π΅ Π±ΡΠ» ΠΎΡΠΊΡΡΡ');
end;
ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠ±Π·ΠΎΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΡΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Π²ΡΠ±ΠΎΡΠ° ΡΠ°ΠΉΠ»Π° (Open1.Execute). ΠΡΠ»ΠΈ Π² ΡΡΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡ ΠΡΠΌΠ΅Π½Π° (Open1.Execute = False), ΡΠΎ ΡΠΎΠΎΠ±ΡΠ°Π΅ΠΌ Π΅ΠΌΡ ΠΎΠ± ΡΡΠΎΠΌ ΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π½ΠΈΠΊΠ°ΠΊΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ±ΡΠ°Π» ΡΠ°ΠΉΠ», ΡΠΎ ΠΊΠΎΠΏΠΈΡΡΠ΅ΠΌ ΠΏΡΡΡ ΠΊ Π½Π΅ΠΌΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΠΏΡΡΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° (ΠΊΠ½ΠΎΠΏΠΊΠ΅ Button3 ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ»Π΅ where):
procedure TForm1.Button3Click(Sender : TObject);
begin
if Save1.Execute
then where.Text:= Save1.FileName
else ShowMessage('ΠΡ Π½Π΅ Π²ΡΠ±ΡΠ°Π»ΠΈ ΠΌΠ΅ΡΡΠΎ Π΄Π»ΡΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°!');
end;
ΠΠ΄Π΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°, ΡΡΠΎ ΠΈ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΠ°ΡΠ΅ΠΌ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΉ ΠΏΡΡΡ Π·Π°Π½ΠΎΡΠΈΡΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, ΡΡΠΎΠ±Ρ Π΅Π³ΠΎ, ΠΏΡΠΈ ΠΆΠ΅Π»Π°Π½ΠΈΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΠΊΠΎΡΡΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΎΠ±ΡΡΠΈΡ OnClick Π΄Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΠ±Π·ΠΎΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ Π΄Π»Ρ Π²ΡΠ±ΠΎΡΠ° ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° :
procedure TForm1.Button4Click(Sender: TObject);
begin
if Open1.Execute
then Del.Text:= Open1.FileName
else ShowMessage('Π€Π°ΠΉΠ» Π½Π΅ Π±ΡΠ» ΠΎΡΠΊΡΡΡ!');
end;
Π‘Π°ΠΌΠ° ΠΊΠ½ΠΎΠΏΠΊΠ° Π£Π΄Π°Π»ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
procedure TForm1.Button6Click(Sender: tobject);
begin
DeleteFile(Del.Text); //ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ°ΠΉΠ»
if not FileExists(Del.Text)//ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»Π°
then ShowMessage('Π€Π°ΠΉΠ» ΡΠ΄Π°Π»Π΅Π½!'); //Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
end;
Π‘Π½Π°ΡΠ°Π»Π° ΠΌΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠ°ΠΉΠ», Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΠΎΠ½ Π½Π° Π΄ΠΈΡΠΊΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π΅Π³ΠΎ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΡΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π°. Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠΠ½Π΅ΡΠ½ΠΈΠΉ Π²ΠΈΠ΄ ΠΎΠΊΠ½Π° Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° ΡΠΈΡ. 2.2.
Π ΠΈΡ. 2.2. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ Π² Π΄Π΅ΠΉΡΡΠ²ΠΈΠΈ
ΠΠΎΠ»Π½ΡΠΉ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΠΎΠ»Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π»ΠΈΡΡΠΈΠ½Π³Π΅ 2.1.
ΠΠΈΡΡΠΈΠ½Π³ 2.1. ΠΠΎΠ΄ΡΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°ΠΉΠ»Π°ΠΌΠΈunit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ShellAPI, Gauges;
type TForm1 = class(TForm)
from: TEdit;
where: TEdit;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button2: TButton;
Button3: TButton;
Open1: TOpenDialog;
Save1: TSaveDialog;
Button4: TButton;
del: TEdit;
Button5: TButton;
Button6: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
private
{ Private declarations }
procedure doit; //ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ doit
public
{ Public declarations }
end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure Tform1.doit();
var
f1, f2: file of byte; //ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΈ Π²ΡΠΎΡΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ
ΡΠΎΡ: byte; //Π΄Π»Ρ ΠΏΠΎΠ±Π°ΠΉΡΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ
sizez: longint; //Ρ ΡΠ°Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°
begin
{I-} {ΠΎΡΠΊΠ»ΡΡΠ°Π΅ΠΌ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ»Π΅Π΄ΠΈΡ Π·Π° ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ Π²Π²ΠΎΠ΄Π°/Π²ΡΠ²ΠΎΠ΄Π°}
try
//ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ Π€Π°ΠΉΠ»ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ f1 Ρ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ
AssignFile(f1, from.Text);
//ΡΠ²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ f2 ΡΠΎ Π²ΡΠΎΡΡΠΌ ΡΠ°ΠΉΠ»ΠΎΠΌ
AssignFile(f2, where.Text);
Reset(f1); //ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°ΠΉΠ» Π½Π° ΡΡΠ΅Π½ΠΈΠ΅
sizez:= Trunc(FileSize(f1)); //ΡΠ·Π½Π°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ»Π°
//ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ ΡΠ°Π·ΠΌΠ΅Ρ ΡΠ°ΠΉΠ» Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ}
Label4.Caption:= IntToStr(sizez div 1024) + 'ΠΠ±β;
{Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ½ ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ}
Rewrite(f2);
while not Eof(f1) do begin //ΠΏΠΎΠΊΠ° Π½Π΅ Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ ΠΊΠΎΠ½Π΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
//ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π°
BlockRead(f1, cop, 1);
//Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ Π±Π°ΠΉΡ Π²ΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ»
BlockWrite(f2, cop, 1);
end;
CloseFile(f1);//Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°ΠΉΠ»
CloseFile(f2);// Π·Π°ΠΊΡΡΠ²Π°Π΅ΠΌ Π²ΡΠΎΡΠΎΠΉ ΡΠ°ΠΉΠ»
finally;
end;
if IOResult <> 0 //ΠΡΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΎΡΠΈΠ±ΠΊΠ° Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°
then MessageDlg('ΠΡΠΈΠ±ΠΊΠ° ΠΏΡΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π°!', mtError, [mbOk] , 0) //ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
else begin
{Π΅ΡΠ»ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ Π±ΡΠ»ΠΎ, ΡΠΎ Π²ΡΠ²ΠΎΠ΄ΠΈΠΌ ΠΎΠΊΠ½ΠΎ ΠΎΠ± ΡΡΠΏΠ΅ΡΠ½ΠΎΠΌ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ}
ShowMessage('Π£ΡΠΏΠ΅ΡΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΎ!');
end;
end;
procedure TForm1.ButtonlClick(Sender: TObject);
begin
doit;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin