#include <stdio.h>
#include <string.h>
#include <stdlib.h>
//#include <io.h>
static unsigned int table[7][7];
void InitTable()
{
unsigned int i;
unsigned int j;
memset(table, 0, sizeof(table));
for(i=0; i<7; i++)
{
for(j=0; j<7; j++)
if(i == 4 || i==3)
table[i][j] = 3;
else if(i==6)
table[i][j] = 6;
else
table[i][j] = 0;
}
/* " 1 / 2 * 3 \ 4 \r,\n 6 其他 0*/
table[0][1] = 1;
table[1][1] = 0;
table[0][2] = 2;
table[2][3] = 3; /*删除*/
table[3][3] = 4; /*删除*/
table[4][2] = 0;
table[4][3] = 4;
table[0][4] = 5;
table[5][2] = 0;
table[5][1] = 0;
table[2][2] = 6; /*删除*/
table[6][6] = 0;
}
int DelComments(char* f, int len)
{
//int fsize;
int cnt;
char* buff;
char* p;
FILE *file;
char c;
int start;
int input;
char space;
start = 0;
space = ' ';
cnt = 0;
buff = (char*)malloc(sizeof(char)*1024*1024);
memset(buff, 0, sizeof(sizeof(char)*1024*1024));
p = buff;
file = fopen(f, "r+b");
//fseek(file, 0, SEEK_END);
//fsize = ftell(file);
//fseek(file, 0, SEEK_SET);
if(file == NULL)
{
return -1;
}
InitTable();
while(fread(&c, sizeof(c), 1, file))
{
cnt++;
switch(c)
{
case '"':
input = 1;
break;
case '/':
input = 2 ;
break;
case '*':
input = 3;
break;
case '\\':
input = 4;
break;
case '\r':
case '\n':
input = 6;
break;
default:
input = 0;
break;
}
switch(start)
{
case 3:
if(c=='\r' || c=='\n')
*p++ = c;
else
*p++ = ' ';
break;
case 2:
if(input == 3 || input == 2)
{
p--;
*p++ = ' ';
*p++ = ' ';
break;
}
else
{
*p++ = c;
break;
}
case 4:
*p++ = ' ';
break;
case 6:
if(input == 6)
*p++ = c;
else
*p++ = ' ';
break;
default:
*p++ = c;
break;
}
start = table[start][input];
}
fclose(file);
file = fopen(f, "w+b");
if(!file)
return -1;
fwrite(buff, cnt, 1, file);
fclose(file);
free(buff);
return 0;
}
int main(int argc, char** argv)
{
int fCnt;
int i;
char* p;
char* q;
int len;
char params[MAXPARAMCNT][MAXFILENAMELEN];
if(argc <= 1 || argv == NULL)
{
return -1;
}
fCnt = argc - 1;
memset(params, 0, sizeof(params));
for(i=1; i<argc; i++)
{
DelComments(argv[i], len);
}
return 0;
}
分享到:
相关推荐
在实际应用中,删除源代码注释的工具往往会有以下功能: 1. 支持多种编程语言,因为不同语言的注释格式各异。 2. 保留原始行号和文件结构,以便于调试和回溯。 3. 提供选项来选择是否保留空行,以保持代码格式的...
在软件开发过程中,代码注释对于理解和维护源代码至关重要,但在申请软著时,通常需要提交不包含注释的源代码以确保原创性。这款工具的主要功能就是帮助开发者快速、有效地去除代码中的注释部分,使得提交的代码符合...
比所谓的“C类语言源代码注释去除程序 V1.0 RemoveCNote”好用多了。而且不会太多的删错代码。几乎不用修改,而“C类语言源代码注释去除程序”修改过的代码完全不能使用。 Win8会阻止运行,选择仍然运行即可。用不用...
用java编写的代码注释删除小工具,能去文本中掉//和/* */注释。 第一个按钮的功能为去掉文本框1中代码的注释,输出到文本框2. 第二个按钮的功能为批量删除文件中的注释,并输出到当前目录(新文件名为xxx.txt)。但...
在实际应用中,源代码注释删除工具应该谨慎使用,因为它也会影响到代码的维护和团队协作。正常的开发流程中,注释是不可或缺的,因为它有助于团队成员之间的沟通和代码的长期维护。因此,这类工具通常只在特定情况下...
这个"Qt编写移除C++代码注释源码"项目提供了一个用Qt5实现的解决方案,它可以帮助我们快速地自动化这个过程。 Qt是一个跨平台的应用程序开发框架,主要用于C++编程,同时也支持QML。Qt5是其最新版本,引入了许多新...
2. 遗失信息:注释中可能包含了开发者对某些问题的解决方案、历史变更记录等重要信息,一旦删除可能永久丢失。 3. 法律风险:在开源项目中,删除许可证注释可能违反开源协议,引发法律纠纷。 4. 影响团队协作:...
本文将围绕"sourceinsight 代码行注释,去注释代码插件"这一主题,详细介绍如何使用自定义宏来实现快速的代码注释和去注释操作。 首先,我们关注的是"代码行注释"。在编程中,注释是必不可少的一部分,它用于解释...
C/C++代码注释自动删除工具,工程编译之后生成的exe文件,文件执行之后会自动扫描文件所在目录以及子目录中的所有c、cpp、h、inl文件中的注释,并处理注释删除之后造成的空格或者空行,并将原始文件备份成tmp文件。...
# 删除多行注释,注意要处理多行注释中可能出现的嵌套情况 while True: temp_code = re.sub(r'/\*.*?\*/', '', source_code, flags=re.DOTALL) if temp_code == source_code: break source_code = temp_code ...
在编程世界中,源代码注释是极其重要的,它们提供了对程序逻辑的解释,帮助开发者理解和维护代码。然而,在某些特定情况下,如编译优化、代码混淆或仅需执行无注释版本时,可能需要去除源代码中的注释。本文将深入...
【小米便签源代码+注释】是一款专为学习Java编程和理解软件开发流程的开发者提供的资源。这个压缩包包含了小米便签应用的完整源代码,并且每段代码都有详细的注释,使得初学者能够更好地理解和学习代码的实现逻辑。 ...
使用ultraedit批量删除代码中的注释,网上找了许多,没有能直接用的,以前没写过正则表达式,废了九牛二虎的力气,总算是写出来了,呵呵~分享一下!
标题中的“删除VB注释工具”指的是一个专门用于去除Visual Basic (VB)代码中的注释的软件工具。在编程过程中,注释是程序员为了增加代码可读性而添加的解释性文字,但在某些情况下,例如代码混淆、版本更新或者只...
本软件主要用于代码保密,即使是被他人获取了无注释源码也难以理解代码...能批量删除代码中的注释,C、C++、汇编语言均支持,自动识别汇编与C,能够批量添加,处理速度快。 软件直接处理目标文件,使用前请做好备份。
使用python脚本快速删除java文件中的注释
● 本软件能批量删除代码中的注释。自动识别C代码和汇编代码。 ● 支持扩展名: *.c, *.cpp, *.h, *.asm, *.dt, *.inc ● 前三种按照C语言规范进行处理,后三种按汇编语言规范进行处理 ● 支持子目录,全自动处理...
为此,出现了一种专门的小工具——“删除C语言注释的小工具”,它可以高效地从C语言源代码中移除注释,保留可执行代码部分。 该小工具包含以下几个关键文件: 1. **DLCMNT Instruction.txt**:这是操作说明文档,...
一个简单的小软件用于C++的代码的注释的删除,界面做的比较难看,大家别介意。