我看到有一些软件可以将数据库(access的)内的数据发送到软盘上,生成的文件后缀是.dat 的,然后拿到上一级单位的计算机内对软盘进行接收,就可以将几个地方的数据统一汇总成一个数据库,这是如何实现的呢?!
请教各位大侠能够解惑,先谢谢了!!!

解决方案 »

  1. 昏……这很简单吧?先把access数据文件中的数据读出来,按照软件约定的格式存入文件,后缀名是什么都不重要,什么后缀名都行,接收时按照约定的格式读取文件中的数据就行
      

  2. 我打开看过.dat文件,根本读不出来。他们是怎么约定格式的?还有每个地方的数据都不同,但接收后却可以进行统一的编码。
    楼上的老兄能告诉我怎么实现的。好吗?
    谢谢!
      

  3. 就相当于一个加密解密过程啊
    你想知道。DAT里面内容,当然要知道格式了,
    格式是自己定,没什么固定的
      

  4. unit Unit6_6;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Buttons;type
      TForm1 = class(TForm)
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Label4: TLabel;
        Label5: TLabel;
        BitBtn1: TBitBtn;
        BitBtn2: TBitBtn;
        BitBtn4: TBitBtn;
        BitBtn5: TBitBtn;
        BitBtn6: TBitBtn;
        BitBtn7: TBitBtn;
        BitBtn8: TBitBtn;
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        Edit4: TEdit;
        Edit5: TEdit;
        procedure FormCreate(Sender: TObject);
        procedure BitBtn5Click(Sender: TObject);
        procedure BitBtn8Click(Sender: TObject);
        procedure BitBtn6Click(Sender: TObject);
        procedure BitBtn7Click(Sender: TObject);
        procedure BitBtn1Click(Sender: TObject);
        procedure BitBtn2Click(Sender: TObject);
        procedure BitBtn4Click(Sender: TObject);
      private
        procedure SaveRecord;
        procedure ShowRecord;
        procedure ClearData;
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}type
        Customer=record
          CustNo : String[10];
          Name : String[20];
          Phone : String[16];
          Fax : String[16];
          Address : String[60];
        end;var CustFile : File of Customer;
        CustData : Customer;
        FName : String;
        RecSize, CurRec : Longint;procedure TForm1.SaveRecord;
    begin
      // 写入一条数据到文件中
      CustData.CustNo:=Edit1.Text;
      CustData.Name:=Edit2.Text;
      CustData.Phone:=Edit3.Text;
      CustData.Fax:=Edit4.Text;
      CustData.Address:=Edit5.Text;
      write( CustFile, CustData );
    end;procedure TForm1.ClearData;
    begin
      // 清除输入字段
      Edit1.Text:='';
      Edit2.Text:='';
      Edit3.Text:='';
      Edit4.Text:='';
      Edit5.Text:='';
    end;procedure TForm1.ShowRecord;
    begin
      // 显示目前文件指针指向的哪一条数据
      Form1.Edit1.Text:=CustData.CustNo;
      Form1.Edit2.Text:=CustData.Name;
      Form1.Edit3.Text:=CustData.Phone;
      Form1.Edit4.Text:=CustData.Fax;
      Form1.Edit5.Text:=CustData.Address;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      ClearData;  // 目前文件的记录指针位置
      CurRec:=0;  FName:='Customer.dat';
      AssignFile( CustFile, FName );  // 计算出每条数据的长度
      RecSize:=SizeOf( CustData );  If FileExists(FName) then begin
        Reset( CustFile );
        If not Eof(CustFile) then begin
          Read( CustFile, CustData );
          ShowRecord;
        end;
      end else begin
        ClearData;
        Rewrite( CustFile );
      end;
    end;procedure TForm1.BitBtn5Click(Sender: TObject);
    begin
      // 把文件指针移到文件开头
      Seek(CustFile, 0);
      ShowRecord;
    end;procedure TForm1.BitBtn8Click(Sender: TObject);
    begin
      // 把文件指针移到文件结尾
      Seek(CustFile, FileSize(CustFile));
      ShowRecord;
    end;procedure TForm1.BitBtn6Click(Sender: TObject);
    begin
      // 把文件指针往前移一条数据
      If (CurRec-1)<0 then begin
        CurRec:=0;
        Seek( CustFile, CurRec );
        ShowMessage( '已经移到文件的最开头 !!');
      end else begin
        CurRec:=CurRec-1;
        Seek( CustFile, CurRec );
        Read( CustFile, CustData );
        ShowRecord;
      end;
    end;procedure TForm1.BitBtn7Click(Sender: TObject);
    begin
      // 把文件指针往后移一条数据
      CurRec:=CurRec+1;
      Seek( CustFile, CurRec );
      If not Eof(CustFile) then begin
        Read( CustFile, CustData );
        Seek( CustFile, CurRec );
        ShowRecord;
      end else begin
        CurRec:=CurRec-1;
        Seek( CustFile, CurRec );
        ShowMessage('已经移到文件的最尾端 !!');
      end;
    end;procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
      // 把数据写入目前文件指针指向的那条记录
      Repeat
        CurRec:=CurRec+1;
        Seek( CustFile, CurRec );
      Until Eof(CustFile);
      ClearData;
      SaveRecord;
      Seek( CustFile, CurRec );
    end;procedure TForm1.BitBtn2Click(Sender: TObject);
    begin
      SaveRecord;
      ShowRecord;
      ShowMessage('已经把数据写入文件中!!');
    end;procedure TForm1.BitBtn4Click(Sender: TObject);
    begin
      SaveRecord;
      CloseFile( CustFile );
      Close;
    end;end.
      

  5. 谢谢hsmserver(撒哈拉之雨的悲伤) 。
      

aliyun

类似问题 »