自动批量转换换行符格式的系统及方法与流程

文档序号:14719020发布日期:2018-06-17 00:20阅读:556来源:国知局

本发明属于软件项目跨平台移植开发领域,具体说是一种能够自动检测并批量转换换行符格式的系统及方法。



背景技术:

在Linux系统下,查看Windows或MACOS的源文件时,会由于换行符格式Windows:【CRLF】、MACOS:【CR】、Linux:【LF】不兼容,导致源文件换行异常,如:每行之间出现多余的空行或者每行末尾出现乱码。通常可以通过另存源文件时指定换行符为【LF】来解决这个问题。但是当大量源文件都需要转换时,比如软件项目在进行跨平台移植开发时的源文件,就显得效率极低,并可能出现遗漏和错误。



技术实现要素:

针对现有技术存在上述缺点或者不足,本发明提供了一种自动批量转换换行符格式的系统及方法,能够自动批量地将【CRLF】和【CR】格式的换行符转换成Linux兼容的【LF】格式的换行符;使转换效率大大提高,并且避免了遗漏和误操作。

为实现上述目的,本发明的技术方案是,自动批量转换换行符格式的系统,包括:

文件遍历模块:以其所在的目录为根路径,遍历根路径下所有的子目录和文件,并记录扫描文件的类型、文件名、扩展名的信息;

文件筛选模块,基于文件遍历模块的输出数据,对文件列表进行筛选;

换行符检查模块,根据文件筛选模块的筛选结果,访问每个文件,进行换行符的检查,针对含有不兼容格式,输出文件列表;

换行符转换模块,根据换行符检查模块输出的文件列表,逐个文件进行换行符的转换处理;

显示模块,将文件遍历模块、文件筛选模块、换行符检查模块、换行符转换模块的输出数据,以及统计信息显示到屏幕上。

日志输出模块,生成Excel格式的日志。

进一步的,文件遍历模块,以深度优先搜索算法遍历根路径下所有的子目录和文件。

进一步的,文件筛选模块,将所有扩展名为“.c”、“.cpp”、“.h”、“.java”、“.xml”格式的文件列为换行符的检查对象。

进一步的,换行符检查模块针对含有不兼容格式,输出文件列表;所述不兼容格换行符格式为【CRLF】或【CR】。

进一步的,换行符转换模块,通过逐字扫描的方法扫描文件,如文件中出现[\\r](【CR】ASCII:0x0D)字符:

根据该字符下一个字符,如果是[\\n](【LF】ASCII:0x0A)字符,则删除[\\r]字符,如果不是[\\n](【LF】ASCII:0x0A)字符,则将[\\r]字符替换成[\\n]字符。

进一步的,所述的日志包括:概要转换日志和详细转换日志。

更进一步的,所述的概要转换日志,输出了每个文件的转换结果。

更进一步的,所述的详细转换日志,针对每个转换成功的文件,单独生成一个详细转换日志,其中记载了不兼容换行符所在的行号。

自动批量转换换行符格式的方法,具体步骤如下:

S1.将上述系统保存到待检查/转换的路径;

S2.按下键盘[Y]键开始进行换行符的检查/转换;

S3.文件遍历模块遍历待检查/转换路径下所有的子目录和文件,并记录扫描文件的类型、文件名、扩展名的信息;

S4:文件筛选模块基于文件遍历模块的输出数据,对文件列表进行筛选;换行符检查模块针对含有不兼容格式,输出文件列表;

S5:换行符转换模块根据输出的文件列表,逐个文件进行换行符的转换处理;

S6.转换完成,查看日志输出模块。

进一步的,所述的日志输出模块采用Excel格式的文件进行输出,因此可以通过筛选功能,快速地定位转换过的文件以及不兼容换行符所在的行号。

本发明由于采用以上技术方案,能够取得如下的技术效果:能够在没有人工干预的情况下,自动且批量地完成对源文件换行符的检查,如果发现不兼容的换行符格式,会自动的进行转换。具备检查/转换迅速、使用方法简单、不遗漏的优点。大大提高了软件项目跨平台移植开发的效率。

附图说明

本发明共有附图1幅:

图1为本发明方法的流程图;

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步的具体说明。

实施例1

自动批量转换换行符格式的系统,包括:

文件遍历模块:以其所在的目录为根路径,以深度优先搜索算法遍历根路径下所有的子目录和文件,并记录扫描文件的类型、文件名、扩展名等信息,为文件筛选模块提供基础数据;

文件筛选模块,基于文件遍历模块的输出数据,对文件列表进行筛选;将所有扩展名为“.c”、“.cpp”、“.h”、“.java”、“.xml”格式的文件列为换行符的检查对象。

换行符检查模块,根据文件筛选模块的筛选结果,访问每个文件,进行换行符的检查,针对含有不兼容格式,如:【CRLF】或【CR】,输出文件列表;

换行符转换模块,根据换行符检查模块输出的文件列表,逐个文件进行换行符的转换处理;通过逐字扫描的方法扫描文件,如果文件中出现[\\r](【CR】ASCII:0x0D)字符:

根据该字符下一个字符,如果是[\\n](【LF】ASCII:0x0A)字符,则删除[\\r]字符,如果不是[\\n](【LF】ASCII:0x0A)字符,则将[\\r]字符替换成[\\n]字符。

显示模块,将文件遍历模块、文件筛选模块、换行符检查模块、换行符转换模块的输出数据,以及统计信息显示到屏幕上。

日志输出模块,生成Excel格式的日志。所述日志分为两种,概要转换日志和详细转换日志。概要转换日志,输出了每个文件的转换结果,如转换成功、转换失败、不需要转换即所有的换行符格式都为【LF】、不支持的文件格式([.c]、[.cpp]、[.h]、[.java]、[.xml]以外的文件格式);详细转换日志,针对每个转换成功的文件,都会单独生成一个详细转换日志,详细转换日志中记载了不兼容换行符所在的行号。

自动批量转换换行符格式的方法,具体步骤如下:

S1.将上述系统保存到待检查/转换的路径;

S2.按下键盘[Y]键开始进行换行符的检查/转换;

S3.文件遍历模块遍历待检查/转换路径下所有的子目录和文件,并记录扫描文件的类型、文件名、扩展名的信息;

S4:文件筛选模块基于文件遍历模块的输出数据,对文件列表进行筛选;换行符检查模块针对含有不兼容格式,输出文件列表;

S5:换行符转换模块根据输出的文件列表,逐个文件进行换行符的转换处理;

S6.转换完成,查看日志输出模块。所述的日志输出模块采用Excel格式的文件进行输出,因此可以通过筛选功能,快速地定位转换过的文件以及不兼容换行符所在的行号。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1