利用剪贴板实现不同应用程序间数据转换的设计方案
2018-02-18王香菊
王香菊
(江苏省江阴中等专业学校 江苏 江阴 214400)
利用剪贴板实现不同应用程序间数据转换的设计方案
王香菊
(江苏省江阴中等专业学校 江苏 江阴 214400)
剪贴板是windows操作系统提供的一个暂存数据的内存区域, 剪切板可以保存的数据类型有文本类型、数字类型、图片类型、视频类型等,也有特殊格式的数据类型,因为有了剪贴板使得在各种应用程序之间传递和共享信息成为了可能。通常我们会使用剪切、复制与粘贴操作在剪贴板中存取数据,而不会主动去控制剪贴板的内容,但在特殊情况下,如果主动利用和控制剪贴板数据,将会大幅提高工作效率。本文主要介绍一种利用剪贴板设计一种程序开发方案以实现自动获取剪贴板内容并自动转换数据。
剪贴板;数据交换;浏览器;应用程序B/S架构
1 问题的提出
在日常工作中通常会遇到这样的问题,客户要求将基于B/S架构的应用程序中的相关数据平移到新系统中,但由于原系统的数据库并不掌握在用户手中,且原系统也并无数据导出功能,从而难以满足用户对新系统应用的需要。那么,如何完整且快速的重现原系统数据并使之能够平移到新系统中?我们知道基于B/S架构的应用程序对数据信息的显示是以浏览器为主的,由于原系统对数据的处理和显示方法无法控制,那么唯一的办法就是将所需要的数据逐一复制出来。通常的做法是利用剪贴板完成逐个数据项的复制和粘贴工作,但这样的方式对于单条记录的数据还是可以的,有时甚至可以直接对照浏览器中显示的数据重新录入,但若数据记录过多,这样的方法明显就不可取了。
首先想到的是可以将浏览器中显示的所有信息先全部复制到剪贴板中,然后再将剪贴板中的有用信息转存到电子表格中,再通过电子表格导入到新系统中。当然复制出来的数据要满足新系统对数据组织形式和格式的要求,就一定需要对其进行适当的处理,且这一过程要能够按要求自动实现或者在少量人工干预的情况下自动实现才可以提高工作效率。
2 剪贴板应用现状
目前IT业有多种使用剪贴板进行数据处理加工的手段,其中对数据、图片的处理最多。到百度上搜索“剪贴板应用”,可以搜索到162万条结果,大部分应用是用来解决办公上的问题,这些都属于简单应用范畴。如果加上关键词“基于Java”,那么搜索结果就仅仅只有1万条左右。目前剪贴板的应用主要有以下几个方面:
(1)利用剪贴板进行数据交换。
(2)监视剪贴板的数据。
(3)创建多个剪贴板。
(4)判断剪贴板数据类型和数据格式,如判断图片数据和文本数据等。
3 系统设计思路
3.1 原始数据分析
通过对浏览器显示的数据进行复制后的内容进行分析,发现原始数据存在以下特点:(1)无效字符紊乱了原始数据;(2)有效数据长度不一;(3)无意义的数据太多;(4)数据间可以找到明显的数据界限。
据此分析,要实现不同平下的数据共享,首先需要对无效字符和无意义的数据进行处理,其次,由于有效数据长度不一,故不能通过数据长度进行截取,,但可以依据数据之间存在的明显界限符剔除无用数据和信息来获取所有可用的数据。
3.2 处理流程设计
本程序的设计思路主要是通过监控剪贴板有无数据和有数据时进行数据处理并转存至电子表格、无数据时等待一个固定时间的过程反复,程序结束后,可将电子表格中的数据导入到新系统中,从而实现旧系统中的数据准确无误地进入新系统。程序设计流程如下:
(1)系统初始化流程,主要对数据界限进行定义、初始化电子表格首行字段内容。同时需要在程序中对电子表格文件进行创建、初始化工作等。
(2)数据处理流程,主要对原始数据进行处理以提取有用数据。为获得正确的数据处理结果,可增加用户随时调整数据界限以及将提取的数据显示给用户的功能。
(3)数据处理过程的可视化设计流程,将处理后的数据记录到Excel文件中并实时显示。
4 系统实现及测试
4.1 用户界面设计
用户界面是应用程序与用户进行交互的窗口,设计的内容包括:
(1)界限定义块:将用户定义的数据界限内容按顺序记录在ArrayList数组集合中;
(2)数据测试块:根据用户定义的内容和用户复制的内容,进行数据测试,将测试结果显示在工作表的相应单元格中;
(3)文件对话框:用于用户选择保存Excel文件的名称;
(4)正式运行块:用户正式运行系统,通过剪贴板、电子表格和浏览器进行数据处理。
4.2 程序逻辑设计
在Java应用中,利用剪贴板进行数据交换可使用的对象如下:
(1)Clipboard:类,实现剪切/复制/粘贴操作并传输数据的机制;
(2)Transferable:接口,是一个用于不同存储介质间数据传输的接口,要真正实现从不同存储介质间的数据传输,则必须实现该接口;
(3)DataFlavor:类,是封装在Transferable接口中的类,用来指定该对象传输数据时的数据格式,就是说是以字节形式传输还是以字符形式传输更或者是以图片数据的形式传输;
(4)StringSelection:类,实现了Transferable接口的类,该类传输数据时的格式已经确定为stringFlavor;
(5)ClipboardOwner:接口类,用于在剪贴板中的原始数据被替换时发出通知。
根据需求,程序体分别定义了下面的模块:
SetXMMC:用于完成设置数据界限;
InitXLSFile:用于完成Excel文件的初始化工作;
CloseXLSFile:用于完成对Excel文件的保存和关闭工作;
tmMainTimer:时间控制,每0.2秒循环控制监控剪贴板数据;
StartAccess:正式数据处理流程,完成需求中的数据处理;
TestAccess:测试数据处理流程,完成需求中的数据模拟处理,并显示结果。
4.3 程序测试
程序运行环境为操作系统:WindowsXP、Windows7、Windows10等;
Office版 本:Office2007、Office2010、Office2013;
浏览器:IE 9、IE 11、搜狗浏览器、Google浏览器等;
效率检测:原系统数据量近4千条记录,未使用该软件进行人工复制约需45人日;使用该软件后实际仅需要2人日。
5 结语
利用剪贴板是在不同应用程序间进行数据交换的重要手段之一,本程序即是借助于剪贴板实现了快速的数据转换,不过因限于数据在浏览器中的显示方式,本程序需要一定的人工干预,即由用户反复单击“基础信息”打开“查看会员基础信息”页面后,连续进行全选、复制和粘贴操作后而实现数据自动转换的。
[1]李朝中.一种剪贴板控制的实现[J].电脑编程技巧与维护,2015,(13)
[2]何音建.剪贴板编程以及在Delphi中的应用[J].电脑编程技巧与维护,1998,(02).
TP316 【文献标识码】A 【文章编号】1009-5624(2018)02-0097-02