home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 2002 September
/
Chip_2002-09_cd1.bin
/
zkuste
/
delphi
/
kompon
/
d123456
/
STR_BIT.ZIP
/
32
/
Stat32
/
Stat.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
2000-03-26
|
2KB
|
77 lines
unit Stat;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, StdCtrls, Spin, StrBit32;
type
TForm1 = class(TForm)
NameIs: TEdit;
OpenDialog1: TOpenDialog;
Label1: TLabel;
BitBtn1: TBitBtn;
ReadDlg: TSpeedButton;
SpinEdit1: TSpinEdit;
Label2: TLabel;
Memo1: TMemo;
procedure BitBtn1Click(Sender: TObject);
procedure ReadDlgClick(Sender: TObject);
private
public
end;
var Form1: TForm1;
implementation
{$R *.DFM}
Const MaxSize = 256;
Type MstatType = array[0..MaxSize] of integer;
procedure Statist(NameIs : String; N:integer; Var Mstat : MstatType);
var FIn : TBitFile; J : Longint;
begin
{ ╬≈Φ±≥Φ≥ⁿ ∞α±±ΦΓ φαΩε∩δσφΦ ±≥α≥Φ±≥ΦΩΦ}
For J := 0 to MaxSize do Mstat[J] := 0;
FIn := TBitFile.Create; {┬√ΣσδσφΦσ ∩α∞ ≥Φ}
FIn.OpenBitFile(NameIs, btOpenRead,bt8); {╬≥Ω≡√≥Φσ ⌠αΘδα}
while Fin.ReadStr(N) = btOk do inc(Mstat[Fin.Nomer(0,N)]);
FIn.CloseBitFile; { ╟αΩ≡√≥Φσ εß≡αßα≥√Γασ∞√⌡ ⌠αΘδεΓ}
FIn.Free; {╬±ΓεßεµΣσφΦσ ∩α∞ ≥Φ}
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
Var MstatP : MstatType;
I, J, K : Integer;
BitStr : TStr_Bit;
Prom : String;
begin
Statist(NameIs.Text, SpinEdit1.Value, MstatP);
BitStr := TStr_Bit.Create;
I := SpinEdit1.Value;
K := 1;
for J := 1 to I do K := K*2;
with Memo1.Lines do begin { ┬√ΓεΣ ≡στ≤δⁿ≥α≥εΓ }
Clear;
Add('─δΦφα ßδεΩα '+ IntToStr(SpinEdit1.Value));
for J := 0 to K-1 do begin
BitStr.Init_array ( J, 2 );
BitStr.Delete ( I, 16 - I );
Prom := BitStr.Val_sim;
Add(Prom +' - '+ IntToStr(MstatP[J]))
end; end;
BitStr.Free;
end;
procedure TForm1.ReadDlgClick(Sender: TObject);
begin
if OpenDialog1.Execute then NameIs.Text := OpenDialog1.FileName;
end;
end.