本发明属于软件项目跨平台移植开发领域,具体说是一种能够自动检测并批量转换换行符格式的系统及方法。
背景技术:
在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格式的文件进行输出,因此可以通过筛选功能,快速地定位转换过的文件以及不兼容换行符所在的行号。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。