home *** CD-ROM | disk | FTP | other *** search
- 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.
-