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 >
Pascal/Delphi Source File  |  2000-03-26  |  2KB  |  77 lines

  1. unit Stat;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   Buttons, StdCtrls, Spin, StrBit32;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     NameIs: TEdit;
  12.     OpenDialog1: TOpenDialog;
  13.     Label1: TLabel;
  14.     BitBtn1: TBitBtn;
  15.     ReadDlg: TSpeedButton;
  16.     SpinEdit1: TSpinEdit;
  17.     Label2: TLabel;
  18.     Memo1: TMemo;
  19.     procedure BitBtn1Click(Sender: TObject);
  20.     procedure ReadDlgClick(Sender: TObject);
  21.   private
  22.   public
  23.   end;
  24.  
  25. var Form1: TForm1;
  26.  
  27. implementation
  28.  
  29. {$R *.DFM}
  30. Const MaxSize = 256;
  31. Type MstatType = array[0..MaxSize] of integer;
  32.  
  33. procedure Statist(NameIs : String; N:integer; Var Mstat : MstatType);
  34. var FIn : TBitFile;    J : Longint;
  35. begin
  36.       { ╬≈Φ±≥Φ≥ⁿ ∞α±±ΦΓ φαΩε∩δσφΦ  ±≥α≥Φ±≥ΦΩΦ}
  37.  For J := 0 to MaxSize do Mstat[J] := 0;
  38.  
  39.  FIn := TBitFile.Create; {┬√ΣσδσφΦσ ∩α∞ ≥Φ}
  40.  FIn.OpenBitFile(NameIs, btOpenRead,bt8); {╬≥Ω≡√≥Φσ ⌠αΘδα}
  41.  
  42.  while Fin.ReadStr(N) = btOk do inc(Mstat[Fin.Nomer(0,N)]);
  43.  
  44.  FIn.CloseBitFile; { ╟αΩ≡√≥Φσ εß≡αßα≥√Γασ∞√⌡ ⌠αΘδεΓ}
  45.  FIn.Free;      {╬±ΓεßεµΣσφΦσ ∩α∞ ≥Φ}
  46. end;
  47.  
  48. procedure TForm1.BitBtn1Click(Sender: TObject);
  49. Var MstatP : MstatType;
  50.     I, J, K : Integer;
  51.     BitStr : TStr_Bit;
  52.     Prom : String;
  53. begin
  54.   Statist(NameIs.Text, SpinEdit1.Value, MstatP);
  55.   BitStr := TStr_Bit.Create;
  56.   I := SpinEdit1.Value;
  57.   K := 1;
  58.   for J := 1 to I do K := K*2;
  59.   with Memo1.Lines do begin { ┬√ΓεΣ ≡στ≤δⁿ≥α≥εΓ }
  60.     Clear;
  61.     Add('─δΦφα ßδεΩα '+ IntToStr(SpinEdit1.Value));
  62.     for J := 0 to K-1 do begin
  63.      BitStr.Init_array ( J, 2 );
  64.      BitStr.Delete ( I, 16 - I );
  65.      Prom := BitStr.Val_sim;
  66.      Add(Prom +' - '+ IntToStr(MstatP[J]))
  67.   end;            end;
  68.   BitStr.Free;
  69. end;
  70.  
  71. procedure TForm1.ReadDlgClick(Sender: TObject);
  72. begin
  73.  if OpenDialog1.Execute then  NameIs.Text := OpenDialog1.FileName;
  74. end;
  75.  
  76. end.
  77.