360ITO技术社区
  • 首页
  • 文章
  • 快讯
  • 讨论
  • 问答
  • 小贴士
  • 代码块
  • 开源
  • 老论坛
登录 | 注册

360ITO技术社区  > 文章

订阅文章

WORD转Sqlite数据库开发手记(2)

smallghost 发布于 8年前 ( comment 0条评论  查看:5370  收藏:0 )

通过WORD转Sqlite数据库开发手记(1)我们已经了解了如何读取Word里面表格数据。接下来我们将正式开发这个转换工具。

       为了做成一个通用转换工具,我们需要让用户输入需要转换的Word文件,并指定转换后的Sqlite数据库保存位置。下面是我设计的UI界面:

  


  需要用到的控件:

   1、  一个文件打开控件

   2、  一个保存控件

  

  处理用户选择WORD文件的代码段:

procedure TFormMain.FWordFileSelBtnClick(Sender: TObject);
begin
  {需要用户选择一个Word文件}
  if FWordFileOpenDialog.Execute then
  begin
    FWordFileNameEdit.Text := FWordFileOpenDialog.FileName;
  end;
end;

  处理用户选择SQLITE文件的代码段:

procedure TFormMain.FSqliteFileSelButtonClick(Sender: TObject);
begin
  {需要用户选择一个Sqlite数据库文件}
  if FSqliteSaveDialog.Execute then
  begin
    FSqliteFileNameEdit.Text := FSqliteSaveDialog.FileName; 
  end;
end;


  输入的WORD文件和输出的Sqlite数据库文件代码都搞完了,接下来就要搞定转换的代码。先来描述一下整个转换过程的逻辑:

    1、  先打开WORD文件
    2、  初始化SQLITE数据库
    3、  创建存储WORD数据需要的表
    4、  循环处理:读一条记录并保存到SQLITE数据库中
    5、  关闭先前打开的WORD文件
    6、  关闭SQLITE数据库

  从第4步我们可以看出,有一个循环过程,我们可以一直循环处理等整个处理都完成后跳出一个提示框提示用户转换完成了,这样显然在用户体验上有些差,用户不知道整个转换过程的进度,所以我们这里需要先来设计个进度汇报UI。

  进度汇报UI如下图:

  

  显示进度汇报UI代码:

procedure ShowWaitFrom(arg_runNotify: TNotifyEvent);
begin
  if g_waitFrm = nil then
  begin
    g_waitFrm := TfrmWait.Create(nil);
  end;
  g_waitFrm.m_clInfoLabel.Top := 17;
  g_waitFrm.m_clInfoLabel.Caption := '';
  g_waitFrm.ProgressBar1.Visible := false;
  g_waitFrm.fnRunEvent := arg_runNotify;
  g_waitFrm.OnShowForm();
end;


  更新进度信息代码:

procedure TfrmWait.setInfo(const Value: string);
begin
  m_clInfoLabel.Caption := Value;
  Application.ProcessMessages;
end;

  更新进度条代码:

procedure OnSetWaitStep(arg_value:Integer);
begin
  if g_waitFrm <> nil then
  begin
    g_waitFrm.ProgressBar1.Position := arg_value; 
  end;
end;


  进度汇报代码搞定后,我们就可以开始正式进入转换代码的开发了。


0 有用 0 无用
本站原创,欢迎转载;尊重他人劳动,转载时保留以下信息:
本文转自:360ITO技术社区
原文标题:WORD转Sqlite数据库开发手记(2)
原文地址:http://www.360ito.com/article/90.html
360ito.com
delphi

共有0个评论 我要评论»

按时间排 按有用数排 按支持数排

网友回复/评论仅代表其个人看法,并不表明本社区同意其观点或证实其描述。

请尽量让自己的回复能够对别人有帮助

1.不欢迎无意义的回复/评论和类似“顶”、“沙发”之类没有营养的文字
如果只是想简单的表个态,请点 有用无用支持反对 等按钮
2.发言之前请再仔细看一遍文章,或许是您遗漏、误解了,理性讨论、切莫乱喷
3.严禁发布违法、违规的信息,请勿到处招贴广告、发布软文;
4.如果您发现自己的回复/评论不见了,请参考以上3条
5.不停制造违规、垃圾信息的,账户将被禁止

热门标签

  • android 20
  • Flash 15
  • 游戏 12
  • Linux 12
  • Python 11
  • 工作笔记 11
  • 社交游戏 7
  • delphi 5
  • jquery 5
  • 编程 4
  • 谷歌 4
  • git 4
  • Centos 4
  • JavaScript 3
  • 开发者 3
  • C/C++ 3
  • 安全 2
  • 代码 2
  • 浏览器 2
  • 移动应用 2

相关文章

周热点

月热点

Copyright ©2011-2012 360ITO技术社区 All Rights Reserved. | 关于 | 联系我们 | 杭州精创信息技术有限公司 浙ICP备09019653号-26|
▲