home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 September
/
Chip_2002-09_cd1.bin
/
zkuste
/
delphi
/
kompon
/
d123456
/
STR_BIT.ZIP
/
32
/
skr
/
Unit1.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
2001-06-25
|
13KB
|
402 lines
{* ─αφφα ∩≡επ≡α∞∞α ≡ατ≡αßε≥αφα Ω≤≡±αφ≥ε∞ 183 ≤≈σßφεΘ π≡≤∩∩√ *
* ╥Φ⌡εφεΓ√∞ └ ╚ Σδ ±Σα≈Φ τα≈σ≥α ∩ε ΣΦ±÷Φ∩δΦφσ *
* "╬±φεΓ√ └δπε≡Φ≥∞Φτα÷ΦΦ Φ ╧≡επ≡α∞∞Φ≡εΓαφΦ " *
* ╧≡επ≡α∞∞α Γ√∩εδφ σ≥ ±Ω≡σ∞ßδΦ≡εΓαφΦσ ταΣαφεπε ⌠αΦδα *
* ╤ε±≥εΦ≥ Φτ ≥≡σ⌡ ∞εΣ≤δσΘ: *
* - Unit1 - ε±φεΓφεΘ ∞εΣ≤δⁿ *
* - Unit2 - ∞εΣ≤δⁿ ±εΣσ≡µα∙ΦΘ ±ΓσΣσφΦ ε ∩≡επ≡α∞∞σ *
* - Unit3 - ∞εΣ≤δⁿ ±εΣσ≡µα∙σΘ ε±φεΓφ≤■ ∩≡ε÷σΣ≤≡≤ - ±Ω≡σ∞ßδΦ≡εΓαφΦσ*
* ╥αΩµσ Σαφφα ∩≡επ≡α∞∞α Φ±∩εδⁿτ≤σ≥ Σε∩εδφΦ≥σδⁿφ≤■ ßΦßΣΦε≥σΩ≤ *
* εß≡αßε≥ΩΦ ßΦ≥εΓ SIRBIT32 *}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Menus, StdCtrls, Buttons, ExtCtrls, ComCtrls, Mask, Grids, Outline,
DirOutln, Spin, DBCtrls,Strbit32,unit3, DBLookup,shellApi;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
StatusBar1: TStatusBar;
Panel1: TPanel;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
uyiy6u71: TMenuItem;
yuiyi1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
RTexit: TMenuItem;
Label3: TLabel;
Label4: TLabel;
N4: TMenuItem;
Progr: TMenuItem;
Helpmenu: TMenuItem;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn6: TBitBtn;
Label5: TLabel;
Label6: TLabel;
N5: TMenuItem;
N6: TMenuItem;
GroupBox1: TGroupBox;
FileIn: TEdit;
FileOut: TEdit;
Label1: TLabel;
Label2: TLabel;
GroupBox2: TGroupBox;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
C1: TMenuItem;
N16: TMenuItem;
PorPolin: TComboBox;
NachUs: TComboBox;
N17: TMenuItem;
BitBtn4: TBitBtn;
N18: TMenuItem;
Period: TComboBox;
Panel2: TPanel;
GroupBox3: TGroupBox;
procedure OpenClick(Sender: TObject);
procedure SaveClick(Sender: TObject);
procedure SkrembClick(Sender: TObject);
procedure NachUsKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ProgrClick(Sender: TObject);
procedure PorPolinKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure RTexitClick(Sender: TObject);
procedure C1Click(Sender: TObject);
procedure NachUsClick(Sender: TObject);
procedure PorPolinClick(Sender: TObject);
procedure N17Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure N18Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
NFileIn,NFileOut,NU,Polin,Period:string;
Raz,ind:int64;
tai:string;
implementation
uses unit2;
{$R *.DFM}
// ╧≡ε÷σΣ≤≡α Γ√ßε≡α Γ⌡εΣφεπε ⌠αΦδα
procedure TForm1.OpenClick(Sender: TObject);
var BFilin:TBitFile;
begin
if OpenDialog1.Execute then
begin
if N8.Checked=True then Filein.Text :=ExtractFilename (OpenDialog1.FileName)
else Filein.Text :=OpenDialog1.FileName;
BFilin := TBitFile.Create;
BFilin.OpenBitFile(FileIn.Text,btOpenRead,bt64);
Raz:=BFilin.SizeOfFile;
BFilin.CloseBitFile;
BFilin.Free;
If N15.Checked=True then StatusBar1.SimpleText:=(FormatFloat(' ╨ατ∞σ≡ ⌠αΦδα '+'##0.###',raz/8388608)+' ╠ßαΘ≥');
if N13.Checked=True then StatusBar1.SimpleText:=(' ╨ατ∞σ≡ ⌠αΦδα '+inttostr(raz div 8)+' ┴αΘ≥');
if N14.Checked=True then StatusBar1.SimpleText:=(' ╨ατ∞σ≡ ⌠αΦδα '+inttostr(raz div 8192)+' ╩ßαΘ≥');
if N12.Checked=True then StatusBar1.SimpleText:=(' ╨ατ∞σ≡ ⌠αΦδα '+inttostr(raz)+' ┴Φ≥');
end
end;
// ╧≡ε÷σΣ≤≡α Γ√ßε≡α Γ√⌡εΣφεπε ⌠αΦδα
procedure TForm1.SaveClick(Sender: TObject);
begin
if SaveDialog1.Execute then
if N8.Checked=True then FileOut.Text :=ExtractFilename (SaveDialog1.FileName)
else FileOut.Text :=SaveDialog1.FileName;
end;
// ╧≡ε÷σΣ≤≡α ∩≡εΓσ≡ΩΦ ∩α≡α∞σ≥≡εΓ ±Ω≡σ∞ßδσ≡α Φ
// τα∩≤±Ωα ±Ω≡σ∞ßδΦ≡εΓαφΦ Φ±⌡εΣφεπε ⌠αΦδα
procedure TForm1.SkrembClick(Sender: TObject);
var str1 :string;
e1,f,n:integer;
begin
// ╧≡εΓσ≡Ωα ΣδΦφ ═╙ ╚ ╘╧
if length(NachUS.Text)<>length(PorPolin.Text)
then
begin
MessageDlg('╨ατδΦ≈φα ΣδΦφα ╧╬╦╚═╬╠└ Φ ═.╙.',mtError,[mbOk], 0);
exit;
end;
// ╧≡εΓσ≡Ωα ταΣαφΦ ╘╧
str1:=PorPolin.text;
for f:=1 to length(str1) do
begin
if (str1[f]<>'0') and (str1[f]<>'1')
then
begin
MessageDlg('═σΓσ≡φ√Θ ⌠ε≡∞α≥ ταΣαφΦ ╘╧',mtError,[mbOk], 0);
exit;
end;
end;
// ╧≡εΓσ≡Ωα ταΣαφΦ ∩σ≡ΦεΣα
str1:=Period.text;
Val(Str1,ind,E1);
if E1<>0 then
begin
MessageDlg('═σΓσ≡φ√Θ ⌠ε≡∞α≥ ∩σ≡ΦεΣα ',mtError,[mbOk],0);
exit;
end;
// ╧≡εΓσ≡Ωα ταΣαφΦ ═╙
str1:=NachUs.text; n:=0;
for f:=1 to length(str1) do
begin
if (str1[f]='0') then inc(n);
if (str1[f]<>'0') and (str1[f]<>'1')
then
begin
MessageDlg('═σΓσ≡φ√Θ ⌠ε≡∞α≥ ταΣαφΦ ═.╙.',mtError,[mbOk], 0);
exit;
end;
end;
// ╧≡εΓσ≡Ωα ταΣαφΦ ═╙
if n=length(str1) then MessageDlg('┬α° Γ√⌡εΣφεΘ ⌠αΦδ ß≤Σσ≥ ΦΣσφ≥Φ≈σφ Φ±⌡εΣφε∞≤ ⌠αΦδ≤, ±∞σφΦ≥σ ═╙',mtInformation,[mbOk],0);
// ╧≡εΓσ≡Ωα ταΣαφΦ ⌠αΦδεΓ
Str1:=FileOut.Text;
if (Filein.Text='') or (FileOut.Text='')or (Filein.Text='╚∞ φσ ταΣαφε')then
begin
MessageDlg('═σ ταΣαφε Φ∞ ⌠αΘδα',mtError,[mbOk], 0);
exit;
end;
Peredach(FileIn.Text, FileOut.Text,NachUs.Text,PorPolin.Text,Period.Text);
// ╬≥Ω≡√≥Φσ εΩφα εß≡αßε≥ΩΦ ⌠αΦδα
Form3.ShowModal();
end;
// ╧≡ε÷σΣ≤≡α ∩εΣ±≈σ≥α ΣδΦφ√ ═╙
procedure TForm1.NachUsKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Label5.Caption:='╩εδΦ≈σ±≥Γε ßΦ≥ φα≈αδⁿφεΘ ≤±≥αφεΓΩΦ : '+Inttostr(length(NachUs.text));
end;
// ╧≡ε÷σΣ≤≡α ε≥Ω≡√≥Φ εΩφα "╬ ∩≡επ≡α∞∞σ"
procedure TForm1.ProgrClick(Sender: TObject);
begin
Form2.ShowModal();
end;
// ╧≡ε÷σΣ≤≡α ∩εΣ±≈σ≥α ΣδΦφ√ ╘╧
procedure TForm1.PorPolinKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Label6.Caption:='╩εδΦ≈σ±≥Γε ≈σσΩ ≡σπΦ±≥≡α : '+Inttostr(length(PorPolin.text));
end;
// ╧≡ε÷σΣ≤≡√ φα±≥≡εΘΩΦ Φ∞σφΦ ⌠αΦδα
procedure TForm1.N7Click(Sender: TObject);
begin
N8.Checked:=False;
N7.Checked:=True;
N10.Checked:=False;
Filein.Text :=OpenDialog1.FileName;
FileOut.Text :=SaveDialog1.FileName;
if OpenDialog1.FileName='' then Filein.Text :='╚∞ φσ ταΣαφε'
else Filein.Text :=OpenDialog1.FileName;
if SaveDialog1.FileName='' then FileOut.Text :=ExtractFileDir(OpenDialog1.FileName)+'Fileout.bin'
else FileOut.Text :=SaveDialog1.FileName;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
N7.Checked:=False;
N8.Checked:=True;
N10.Checked:=False;
Filein.Text :=ExtractFilename (OpenDialog1.FileName);
FileOut.Text:=ExtractFilename (SaveDialog1.FileName);
if OpenDialog1.FileName='' then Filein.Text :='╚∞ φσ ταΣαφε'
else Filein.Text :=ExtractFilename(OpenDialog1.FileName);
if SaveDialog1.FileName='' then FileOut.Text :='Fileout.bin'
else FileOut.Text :=ExtractFilename(SaveDialog1.FileName);
end;
procedure TForm1.N10Click(Sender: TObject);
begin
N7.Checked:=False;
N8.Checked:=False;
N10.Checked:=True;
Filein.Text :=ExtractFilename (OpenDialog1.FileName);
FileOut.Text:=ExtractFilename (SaveDialog1.FileName);
if OpenDialog1.FileName='' then Filein.Text :='╚∞ φσ ταΣαφε'
else Filein.Text :=ExtractFileDrive (OpenDialog1.FileName)+'\..\'+ExtractFilename (OpenDialog1.FileName);
if SaveDialog1.FileName='' then FileOut.Text :=ExtractFileDrive(OpenDialog1.FileName)+'\..\'+'Fileout.bin'
else FileOut.Text :=ExtractFileDrive (SaveDialog1.FileName)+'\..\'+ExtractFilename(SaveDialog1.FileName);
end;
// ╧≡ε÷σΣ≤≡√ φα±≥≡εΘΩΦ ≡ατ∞σ≡α ⌠αΦδα
procedure TForm1.N12Click(Sender: TObject);
begin
N12.Checked:=True;
N13.Checked:=False;
N14.Checked:=False;
N15.Checked:=False;
StatusBar1.SimpleText:=(' ╨ατ∞σ≡ ⌠αΦδα '+inttostr(raz)+' ┴Φ≥');
end;
procedure TForm1.N13Click(Sender: TObject);
begin
N13.Checked:=True;
N12.Checked:=False;
N14.Checked:=False;
N15.Checked:=False;
StatusBar1.SimpleText:=(' ╨ατ∞σ≡ ⌠αΦδα '+inttostr(raz div 8)+' ┴αΘ≥');
end;
procedure TForm1.N14Click(Sender: TObject);
begin
N14.Checked:=True;
N12.Checked:=False;
N13.Checked:=False;
N15.Checked:=False;
StatusBar1.SimpleText:=(' ╨ατ∞σ≡ ⌠αΦδα '+inttostr(raz div 8192)+' ╩ßαΘ≥');
end;
procedure TForm1.N15Click(Sender: TObject);
begin
N15.Checked:=True;
N12.Checked:=False;
N13.Checked:=False;
N14.Checked:=False;
StatusBar1.SimpleText:=(FormatFloat(' ╨ατ∞σ≡ ⌠αΦδα '+'##0.###',raz/8388608)+' ╠ßαΘ≥');
end;
// ╧≡ε÷σΣ≤≡α ταΩ≡√≥Φ εΩφα
procedure TForm1.RTexitClick(Sender: TObject);
begin
Close;
end;
// ╧≡ε÷σΣ≤≡√ αΩ≥ΦΓΦτα÷ΦΦ Φ ≡αßε≥√ ±≥≡εΩ ∩εΣ±≈σ≥α
procedure TForm1.C1Click(Sender: TObject);
begin
if C1.Checked=True then
begin
C1.Checked:=False;
Label5.Visible:=False;
Label6.Visible:=False;
end
else
Begin
C1.Checked:=True;
Label5.Visible:=True;
Label6.Visible:=True;
end;
end;
procedure TForm1.NachUsClick(Sender: TObject);
begin
if N17.Checked=true then
PorPolin.ItemIndex:=NachUs.ItemIndex;
Label5.Caption:='╩εδΦ≈σ±≥Γε ßΦ≥ φα≈αδⁿφεΘ ≤±≥αφεΓΩΦ : '+Inttostr(length(NachUs.text));
Label6.Caption:='╩εδΦ≈σ±≥Γε ≈σσΩ ≡σπΦ±≥≡α : '+Inttostr(length(PorPolin.text));
end;
procedure TForm1.PorPolinClick(Sender: TObject);
begin
if N17.Checked=true then
NachUs.ItemIndex:=PorPolin.ItemIndex;
Label6.Caption:='╩εδΦ≈σ±≥Γε ≈σσΩ ≡σπΦ±≥≡α : '+Inttostr(length(PorPolin.text));
Label5.Caption:='╩εδΦ≈σ±≥Γε ßΦ≥ φα≈αδⁿφεΘ ≤±≥αφεΓΩΦ : '+Inttostr(length(NachUs.text));
end;
// ╧≡ε÷σΣ≤≡α αΩ≥ΦΓΦτα÷ΦΦ ±Γ τΦ ╘╧ Φ ═╙
procedure TForm1.N17Click(Sender: TObject);
begin
if N17.Checked=false then N17.Checked:=true
else N17.Checked:=false;
end;
// ╬≥≡√≥Φσ ⌠αΦδα ∩ε∞ε∙Φ
procedure TForm1.BitBtn4Click(Sender: TObject);
begin
ShellExecute(Handle,nil,'HelpADD.hlp',nil,nil,SW_RESTORE);
end;
// ╧≡ε÷σΣ≤≡α αΩ≥ΦΓ∞τα÷ΦΦ Γ±∩δ√Γα■∙σΘ ∩ε∞ε∙Φ
procedure TForm1.N18Click(Sender: TObject);
begin
if N18.Checked=false then
begin
Form1.BorderIcons:=[biSystemMenu,biMinimize,biHelp];
N18.Checked:=true;
end
else
begin
Form1.BorderIcons:=[biSystemMenu,biMinimize];
N18.Checked:=false;
end;
end;
// ┬┬σΣσφΦσ ∩α≡α∞σ≥≡εΓ ± ∩ε∞ε∙ⁿ■ Ωε∞αφΣφεΘ ±≥≡εΩΦ
procedure TForm1.FormActivate(Sender: TObject);
begin
if ParamCount=1 then FileIn.Text:=ParamStr(1);
if ParamCount=2 then
begin
FileIn.Text:=ParamStr(1);
FileOut.Text:=ParamStr(2);
end;
if ParamCount=3 then
begin
FileIn.Text:=ParamStr(1);
FileOut.Text:=ParamStr(2);
NachUs.Text:=ParamStr(3);
end;
if ParamCount=4 then
begin
FileIn.Text:=ParamStr(1);
FileOut.Text:=ParamStr(2);
NachUs.Text:=ParamStr(3);
PorPolin.Text:=ParamStr(4);
end;
if ParamCount=5 then
begin
FileIn.Text:=ParamStr(1);
FileOut.Text:=ParamStr(2);
NachUs.Text:=ParamStr(3);
PorPolin.Text:=ParamStr(4);
Period.Text:=ParamStr(5);
end;
if ParamCount=6 then
begin
FileIn.Text:=ParamStr(1);
FileOut.Text:=ParamStr(2);
NachUs.Text:=ParamStr(3);
PorPolin.Text:=ParamStr(4);
Period.Text:=ParamStr(5);
if ParamStr(6)='st' then SkrembClick(Sender );
end;
end;
end.