⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 umain.~pas

📁 中国移动话费处理系统,中国移动主页上,查询到你的话费清单,把它复制粘贴到一个文本文件中就可以了。
💻 ~PAS
字号:
unit uMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, SUIForm, JvScrollMax, SUIButton, ComCtrls, StdCtrls,
  TinyDB, DB, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, Grids, DBGrids,
  dxTLClms, Spin;

type
  TForm1 = class(TForm)
    suiForm1: TsuiForm;
    JvScrollMax1: TJvScrollMax;
    JvScrollMaxBand1: TJvScrollMaxBand;
    JvScrollMaxBand2: TJvScrollMaxBand;
    Splitter1: TSplitter;
    Panel1: TPanel;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    Panel2: TPanel;
    suiButton1: TsuiButton;
    Label1: TLabel;
    FileNameEdit: TEdit;
    BrowseButton: TsuiButton;
    CreateDatabaseButton: TsuiButton;
    GroupBox5: TGroupBox;
    Label11: TLabel;
    Label14: TLabel;
    CompCheckBox: TCheckBox;
    CompAlgoComboBox: TComboBox;
    CompLevelComboBox: TComboBox;
    GroupBox6: TGroupBox;
    Label12: TLabel;
    Label13: TLabel;
    EncryptCheckBox: TCheckBox;
    EncAlgoComboBox: TComboBox;
    EncPwdEdit: TEdit;
    TinyTable1: TTinyTable;
    TinyDatabase1: TTinyDatabase;
    Label2: TLabel;
    DefaultFileNameEdit: TEdit;
    suiButton2: TsuiButton;
    Label3: TLabel;
    suiButton4: TsuiButton;
    suiButton5: TsuiButton;
    suiButton6: TsuiButton;
    suiButton7: TsuiButton;
    suiButton8: TsuiButton;
    dxDBGrid1: TdxDBGrid;
    DataSource1: TDataSource;
    Memo1: TMemo;
    MobileTollFileNameEdit: TEdit;
    suiButton3: TsuiButton;
    suiButton9: TsuiButton;
    dxDBGrid2: TdxDBGrid;
    dxDBGridMaskColumn1: TdxDBGridMaskColumn;
    dxDBGridMaskColumn2: TdxDBGridMaskColumn;
    dxDBGridMaskColumn3: TdxDBGridMaskColumn;
    dxDBGridMaskColumn4: TdxDBGridMaskColumn;
    dxDBGridMaskColumn5: TdxDBGridMaskColumn;
    dxDBGridMaskColumn6: TdxDBGridMaskColumn;
    dxDBGrid3: TdxDBGrid;
    TabSheet6: TTabSheet;
    dxDBGrid4: TdxDBGrid;
    TabSheet7: TTabSheet;
    dxDBGrid5: TdxDBGrid;
    dxDBGrid3Column1: TdxDBGridMaskColumn;
    dxDBGrid3Column2: TdxDBGridMaskColumn;
    dxDBGrid3Column3: TdxDBGridMaskColumn;
    dxDBGrid3Column4: TdxDBGridMaskColumn;
    dxDBGrid3Column5: TdxDBGridMaskColumn;
    dxDBGrid3Column6: TdxDBGridMaskColumn;
    dxDBGrid4Column1: TdxDBGridMaskColumn;
    dxDBGrid4Column2: TdxDBGridMaskColumn;
    dxDBGrid4Column3: TdxDBGridMaskColumn;
    dxDBGrid4Column4: TdxDBGridMaskColumn;
    dxDBGrid4Column5: TdxDBGridMaskColumn;
    dxDBGrid4Column6: TdxDBGridMaskColumn;
    Panel3: TPanel;
    suiButton10: TsuiButton;
    SpinEdit1: TSpinEdit;
    Label4: TLabel;
    Label5: TLabel;
    SpinEdit2: TSpinEdit;
    dxDBGrid1Column1: TdxDBGridMaskColumn;
    dxDBGrid1Column2: TdxDBGridMaskColumn;
    dxDBGrid1Column3: TdxDBGridMaskColumn;
    dxDBGrid1Column4: TdxDBGridMaskColumn;
    dxDBGrid1Column5: TdxDBGridMaskColumn;
    dxDBGrid1Column6: TdxDBGridMaskColumn;
    suiButton11: TsuiButton;
    TabSheet8: TTabSheet;
    dxDBGrid5Column1: TdxDBGridMaskColumn;
    dxDBGrid5Column2: TdxDBGridMaskColumn;
    dxDBGrid5Column3: TdxDBGridMaskColumn;
    dxDBGrid5Column4: TdxDBGridMaskColumn;
    dxDBGrid5Column5: TdxDBGridMaskColumn;
    dxDBGrid5Column6: TdxDBGridMaskColumn;
    dxDBGrid5Column7: TdxDBGridMaskColumn;
    dxDBGrid5Column8: TdxDBGridMaskColumn;
    dxDBGrid6: TdxDBGrid;
    dxDBGrid6Column1: TdxDBGridMaskColumn;
    dxDBGrid6Column2: TdxDBGridMaskColumn;
    dxDBGrid6Column3: TdxDBGridMaskColumn;
    dxDBGrid6Column4: TdxDBGridMaskColumn;
    dxDBGrid6Column5: TdxDBGridMaskColumn;
    dxDBGrid6Column6: TdxDBGridMaskColumn;
    dxDBGrid6Column7: TdxDBGridMaskColumn;
    dxDBGrid6Column8: TdxDBGridMaskColumn;
    TinyTable2: TTinyTable;
    suiButton12: TsuiButton;
    procedure OpenDataBase;
    function ISOpenDataBase:boolean;
    procedure FormCreate(Sender: TObject);
    procedure CreateDatabaseButtonClick(Sender: TObject);
    procedure BrowseButtonClick(Sender: TObject);
    procedure suiButton2Click(Sender: TObject);
    procedure suiButton3Click(Sender: TObject);
    procedure suiButton9Click(Sender: TObject);
    procedure suiButton1Click(Sender: TObject);
    procedure suiButton4Click(Sender: TObject);
    procedure suiButton5Click(Sender: TObject);
    procedure suiButton6Click(Sender: TObject);
    procedure suiButton7Click(Sender: TObject);
    procedure suiButton8Click(Sender: TObject);
    procedure suiButton11Click(Sender: TObject);
    procedure suiButton10Click(Sender: TObject);
    procedure TinyTable2AfterClose(DataSet: TDataSet);
    procedure TinyTable2AfterOpen(DataSet: TDataSet);
    procedure suiButton12Click(Sender: TObject);
  private
    ISCloseDataBase:boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  TTinyDatabase.GetCompressAlgoNames(CompAlgoComboBox.Items);
  TTinyDatabase.GetEncryptAlgoNames(EncAlgoComboBox.Items);
  ISCloseDataBase:=True;
end;

function Tform1.ISOpenDataBase:boolean;
begin
 if ISCloseDataBase then
   Begin
     MessageBox(handle,'请先打开数据库文件!','提示',Mb_iconinformation);
     Result:=False;
   End
 else Result:=True;
end;
procedure TForm1.CreateDatabaseButtonClick(Sender: TObject);
var
  Ok: Boolean;
begin
  if Trim(FileNameEdit.Text)='' then Exit;
  //创建数据库
  Ok := TinyDatabase1.CreateDatabase(
      FileNameEdit.Text,               //数据库文件名
      CompCheckBox.Checked,            //是否压缩
      TCompressLevel(CompLevelComboBox.ItemIndex),   //压缩程度
      CompAlgoComboBox.Text,           //压缩算法
      EncryptCheckBox.Checked,         //是否加密
      EncAlgoComboBox.Text,            //加密算法
      EncPwdEdit.Text,                 //口令
      False                            //是否CRC32
      );

  //创建表
  TinyDatabase1.DatabaseName := FileNameEdit.Text;
  TinyDatabase1.Password := EncPwdEdit.Text;
  TinyDatabase1.CreateTable('ChinamobileTable', [
    FieldItem('呼叫类型', ftString, 4),
    FieldItem('电话号码', ftString, 20),
    FieldItem('日期', ftString, 22),
    FieldItem('移动费', ftString, 10),
    FieldItem('长话费', ftString, 10),
    FieldItem('漫游类型', ftString, 4),
    FieldItem('年份', ftInteger),
    FieldItem('月份', ftInteger)
    ] );

  //创建索引
  TinyDatabase1.CreateIndex('ChinamobileTable', 'IDIndex', [], ['电话号码']);
  TinyDatabase1.CreateIndex('ChinamobileTable', 'DateIndex', [], ['日期']);

  if Ok then
    MessageBox(Handle,'创建数据库成功!','提示',Mb_iconinformation)
  else
    MessageBox(Handle,'创建数据库失败!','提示',Mb_iconinformation);
end;

procedure TForm1.BrowseButtonClick(Sender: TObject);
var
  SaveDialog: TSaveDialog;
begin
  SaveDialog := TSaveDialog.Create(Self);

  SaveDialog.Filter := 'TinyDatabase Files(*.tdb)|*.tdb|Any Files(*.*)|*.*';
  SaveDialog.DefaultExt := '.tdb';
  SaveDialog.Options := SaveDialog.Options + [ofOverwritePrompt];
  if SaveDialog.Execute then
    FileNameEdit.Text := SaveDialog.FileName;
  SaveDialog.Free;
end;

procedure TForm1.suiButton2Click(Sender: TObject);
var
  OpenDialog: TOpenDialog;
begin
  OpenDialog := TOpenDialog.Create(Self);

  OpenDialog.Filter := 'TinyDatabase Files(*.tdb)|*.tdb';
  OpenDialog.DefaultExt := '.tdb';
  OpenDialog.Options := OpenDialog.Options;
  if OpenDialog.Execute then
    DefaultFileNameEdit.Text := OpenDialog.FileName;
  OpenDialog.Free;
end;

procedure TForm1.suiButton3Click(Sender: TObject);
var
  OpenDialog: TOpenDialog;
begin
  OpenDialog := TOpenDialog.Create(Self);

  OpenDialog.Filter := 'TxT Files(*.TxT)|*.TxT';
  OpenDialog.DefaultExt := '.TxT';
  OpenDialog.Options := OpenDialog.Options;
  if OpenDialog.Execute then
    MobileTollFileNameEdit.Text := OpenDialog.FileName;
  OpenDialog.Free;
end;

procedure TForm1.OpenDataBase;
begin
  TinyTable1.Close;
  TinyTable1.DatabaseName := DefaultFileNameEdit.Text;
  TinyTable1.Password := EncPwdEdit.Text;
  TinyTable1.TableName := 'ChinaMobileTable';
  TinyTable1.IndexName := 'IDIndex';
  TinyTable1.Open;
end;
procedure TForm1.suiButton9Click(Sender: TObject);
var i,TempPosition:integer;
    str1,str2:WideString;
    CallType,             // 呼叫类型
    ID,                   // 电话号码
    date,                 // 日期
    MobilToll,            // 移动费
    LongDistanceToll,     // 长话费
    RoveType:WideString;  // 漫游类型
begin
 if Trim(MobileTollFileNameEdit.Text)='' then
   Begin
     MessageBox(handle,'请先选择话费文件!','提示',Mb_iconinformation);
     Exit;
   End;
 if Trim(DefaultFileNameEdit.Text)='' then
   Begin
     MessageBox(handle,'请先选择文件名!','提示',Mb_iconinformation);
     Exit;
   End;
 Memo1.Lines.LoadFromFile(MobileTollFileNameEdit.Text);
 //打开数据库
 Form1.OpenDatabase;

 For i:=0 to Memo1.Lines.Count-1 do
    begin
     str1:=Memo1.Lines.Strings[i];
     TempPosition:=Pos('¥',str1);
     if TempPosition=0 then
       begin
         messageBox(handle,'1','23',Mb_iconinformation);
         exit;
       end;
    end;
 For i:=0 to Memo1.Lines.Count-1 do
   begin
     str1:=Memo1.Lines.Strings[i];
     str2:=str1;

     CallType:=Copy(str2,1,2);   // 呼叫类型
     TempPosition:=Pos(' ',str2);

     Delete(str2,1,TempPosition);
     TempPosition:=Pos(' ',str2);
     ID:=Copy(str2,1,TempPosition-1); // 电话号码

     Delete(str2,1,TempPosition);
     TempPosition:=Pos(' ',str2);
     Delete(str2,1,TempPosition);
     TempPosition:=Pos(' ',str2);
     date:=Copy(str2,1,11);         // 日期

     str2:=str1;
     TempPosition:=Pos('¥',str2);
     Delete(str2,1,TempPosition);
     TempPosition:=Pos(' ',str2);
     MobilToll:=Copy(str2,1,TempPosition-1);      // 移动费

     TempPosition:=Pos('¥',str2);
     Delete(str2,1,TempPosition);
     TempPosition:=Pos(' ',str2);
     LongDistanceToll:=Copy(str2,1,TempPosition-1);      // 长话费

     str2:=str1;
     RoveType:=Copy(str2,Length(str2)-2,2);      // 漫游类型

     //添加记录
     TinyTable1.AppendRecord([Trim(CallType),Trim(ID),Trim(date),Trim(MobilToll),Trim(LongDistanceToll),Trim(RoveType),strtoint(SpinEdit1.Text),Strtoint(SpinEdit2.Text)]);

   end;
   TinyTable2.Close;
   TinyTable2.Open;
   MessageBox(handle,'处理数据成功!','提示',Mb_iconinformation);
end;

procedure TForm1.suiButton1Click(Sender: TObject);
begin
 PageControl1.ActivePageIndex:=1;
end;

procedure TForm1.suiButton4Click(Sender: TObject);
begin
 if not ISOpenDataBase then Exit;
 PageControl1.ActivePageIndex:=2;
end;

procedure TForm1.suiButton5Click(Sender: TObject);
begin
 if not ISOpenDataBase then Exit;
 PageControl1.ActivePageIndex:=3;
end;

procedure TForm1.suiButton6Click(Sender: TObject);
begin
 if not ISOpenDataBase then Exit;
 PageControl1.ActivePageIndex:=4;
end;

procedure TForm1.suiButton7Click(Sender: TObject);
begin
 if not ISOpenDataBase then Exit;
 PageControl1.ActivePageIndex:=5;
end;

procedure TForm1.suiButton8Click(Sender: TObject);
begin
 if not ISOpenDataBase then Exit;
 PageControl1.ActivePageIndex:=6;
end;

procedure TForm1.suiButton11Click(Sender: TObject);
begin
 if not ISOpenDataBase then Exit;
 PageControl1.ActivePageIndex:=7;
end;

procedure TForm1.suiButton10Click(Sender: TObject);
begin
  if Trim(DefaultFileNameEdit.Text)='' then
   Begin
     MessageBox(handle,'请先选择文件名!','提示',Mb_iconinformation);
     PageControl1.ActivePageIndex:=1;
     Exit;
   End;
  TinyTable2.Close;
  TinyTable2.DatabaseName := DefaultFileNameEdit.Text;
  TinyTable2.Password := EncPwdEdit.Text;
  TinyTable2.TableName := 'ChinaMobileTable';
  TinyTable2.IndexName := 'IDIndex';
  TinyTable2.Open;
  MessageBox(handle,'数据库打开成功!','提示',Mb_iconinformation);
end;

procedure TForm1.TinyTable2AfterClose(DataSet: TDataSet);
begin
 ISCloseDataBase:=True;
end;

procedure TForm1.TinyTable2AfterOpen(DataSet: TDataSet);
begin
 ISCloseDataBase:=False;
end;

procedure TForm1.suiButton12Click(Sender: TObject);
begin
 if Trim(DefaultFileNameEdit.Text)='' then
   Begin
     MessageBox(handle,'请先选择文件名!','提示',Mb_iconinformation);
     Exit;
   End;
 Form1.OpenDatabase;
 TinyTable1.Close;
 TinyTable1.EmptyTable;
 TinyTable1.Open;
 MessageBox(handle,'数据库已清空!','提示',Mb_iconinformation);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -