[发明专利]一种数据传输方法及传输装置在审
申请号: | 201711084194.8 | 申请日: | 2017-11-07 |
公开(公告)号: | CN107861885A | 公开(公告)日: | 2018-03-30 |
发明(设计)人: | 方建勋 | 申请(专利权)人: | 浪潮软件股份有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02;G06F9/50 |
代理公司: | 济南信达专利事务所有限公司37100 | 代理人: | 李世喆 |
地址: | 250100 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据传输 方法 传输 装置 | ||
1.一种数据传输方法,其特征在于,包括:
预先获取至少一个逗号分隔值CSV文件;
接收外部输入的导出指令;
根据所述导出指令,从所述至少一个CSV文件中确定出待导出CSV文件;
确定所述待导出CSV文件中的数据量;
根据所述数据量,将所述待导出CSV文件拆分为至少两个数据块;
依次将每一个所述数据块映射到内存中;
依次对映射在内存中的所述数据块进行处理;
根据所述导出指令,将处理后所产生的待导出数据发送给指定目标。
2.根据权利要求1所述的方法,其特征在于,
所述依次将每一个所述数据块映射到内存中,包括:
分别确定每一个所述数据块对应的映射顺序,并将所述映射顺序中的第一个所述数据块作为当前数据块;
根据所述映射顺序,将所述当前数据块映射到内存中;
所述依次对映射在内存中的所述数据块进行处理,包括:
获取映射在内存中的所述当前数据块对应的内存地址;
根据所述内存地址,获取所述当前数据块中的内容;
解析获取的所述当前数据块中的内容;
根据所述映射顺序,确定是否存在未获取的所述数据块;
如果是,根据所述映射顺序,将所述当前数据块的下一个数据块作为当前数据块,执行将所述当前数据块对应的当前地址映射到内存中。
3.根据权利要求2所述的方法,其特征在于,
在所述解析获取的所述当前数据块之前,进一步包括:
设置字段缓存、行缓存和多行缓存;
所述解析获取的所述当前数据块中的内容,包括:
S0:确定获取所述当前数据块中每一个字符的字符顺序,并将所述字符顺序中第一个字符作为当前字符;
S1:确定获取的所述当前字符是否为双引号中的前引号,如果是,执行步骤S2,否则执行步骤S3;
S2:根据所述字符顺序,获取每一个所述字符,在遇到与所述前引号相对应的后引号时,将所述前引号与所述后引号内由各个所述字符组成的字段加入到所述字段缓存中,并根据所述字符顺序,将所述后引号的下一个字符作为当前字符,返回S0;
S3:确定所述当前字符是否为分隔符,如果是,执行步骤S4,否则,执行步骤S5;
S4:将所述字段缓存中,在所述分隔符之前的所述字段加入到所述行缓存中,并根据所述字符顺序,将所述分隔符的下一个所述字符作为当前字符,返回S0;
S5:确定所述当前字符是否为换行符,如果是,执行步骤S6,否则,执行步骤S7;
S6:将所述行缓存中,在所述换行符之前由各个所述字段组成的当前数据行加入到所述多行缓存中,根据所述字符顺序,将所述换行符的下一个所述字符作为当前字符,返回S0;
S7:将所述当前字符加入到所述字段缓存中,根据所述字符顺序,将所述当前字符的下一个所述字符作为当前字符,返回S0。
4.根据权利要求3所述的方法,其特征在于,
在所述换行符之前由各个所述字段组成的当前数据行加入到所述多行缓存中之后,进一步包括:
确定所述当前数据行是否为所述待导出CSV文件中的第一行;
如果不是,判断所述当前数据行与所述当前数据行的上一个数据行的列式是否一致;
如果不一致,则停止解析当前数据块。
5.根据权利要求1至4中任一所述的方法,其特征在于,
在所述依次对映射在内存中的所述数据块进行处理之后,在所述将处理后所产生的待导出数据发送给指定目标之前,进一步包括:
确定所述待导出数据是否达到预设发送值;
如果是,触发生成轻量级的数据交换格式JSON文件;
将生成的所述JSON文件发送给指定目标。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮软件股份有限公司,未经浪潮软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711084194.8/1.html,转载请声明来源钻瓜专利网。