代码统计器代码
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, FileCtrl;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
ListBox1: TListBox;
Edit3: TEdit;
DriveComboBox1: TDriveComboBox;
Label3: TLabel;
Label4: TLabel;
CheckBox1: TCheckBox;
Edit4: TEdit;
procedure Button1Click(Sender: TObject);
procedure Edit3DblClick(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure SrchFile(FileType, PathFile: string; var vCount, FileCount: Integer; vTs: TStringList);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
i,Count,Fd: integer;
Ts: TStringList;
path: string;
FileTp: String;
begin
if Trim(Edit3.Text) = '' then exit;
if CheckBox1.Checked then
FileTp := Trim(edit4.Text)
else FileTp := '.pas';
if Length(edit4.text) > 10 then
begin
MessageDlg('扩展名太长,纯属胡闹!',mtError,mbOKCancel,0);
exit;
end;
if pos('.',edit4.Text) < 0 then
begin
MessageDlg('扩展名前加’.‘',mtError,mbOKCancel,0);
exit;
end;
path := Edit3.Text; //'D:\国库\基线区\A1国库CS代码\集中支付';
edit1.Text := '';
edit2.Text := '';
ListBox1.Items.Clear;
Ts := TStringList.Create;
i := 0;
Count := 0;
try
SrchFile(FileTp,path, Count, i, Ts);
Edit1.Text := inttostr(i);
edit2.Text := inttostr(count);
finally
Ts.Free;
end;
// 61.135.231.42
end;
procedure TForm1.Edit3DblClick(Sender: TObject);
var
sdirt: string;
begin
SelectDirectory('请选择代码路径','我的电脑', sdirt);
Edit3.text := sdirt;
end;
procedure TForm1.SrchFile(FileType, PathFile: string; var vCount, FileCount: Integer; vTs: TStringList);
var
Fd: integer;
sc: TSearchRec;
begin
try
Fd := FindFirst(PathFile +'\*.*',faAnyFile,Sc);
while Fd = 0 do
begin
if ( sc.Attr = faDirectory ) and ( sc.Name <> '.' )
and ( Sc.Name <> '..' ) then
SrchFile(FileType,pathfile+'/'+sc.Name,vCount, FileCount, vTs);
if ExtractFileExt(sc.name) = FileType then // (sc.Attr and 0) = sc.Attr
begin
vTs.Clear;
vTs.LoadFromFile(PathFile + '\' + sc.name);
vCount := vCount + vTs.Count;
listbox1.items.add(sc.Name + ' ='+ IntToStr(vTs.Count));
Inc(FileCount);
end;
Fd := FindNext(sc);
end;
finally
FindClose(sc);
end;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
Edit4.Enabled := CheckBox1.Checked;
end;
end.